Compiler 0Linux
0Linux propose un système de construction assistée pour faciliter la compilation et la création de recettes. Tout se trouve dans les sources de 0Linux, dans le répertoire scripts. Il contient :
- Un système de construction local comprenant :
- un script
construction.sh
qui permet de compiler et d'installer un paquet ou un ensemble de paquets. Lisez-le ! son entête contient un mode d'emploi à jour. - un ensemble de listes nommées
construction-NOM
contenant des ensembles logiciels à compiler/installer. Lisez-les et créez les vôtres !
- un service de construction pour faire tourner un serveur de construction automatisé, comprenant :
service_construction.sh
qui traite une file d'attente de logiciels à empaqueter. La file d'attente contient tout simplement les paramètres à passer àconstruction.sh
. Lisez-le !- un script de vérification des dépendances des binaires générés
trouver_binaires_casses.sh
, appelé parservice_construction.sh
- un script de génération de la base de données des paquets et d'envoi des paquets sur le dépôt de paquets,
0mir
, appelé parservice_construction.sh
- un script pratique d'affichage des dépendances des binaires,
findelves.sh
, non utilisé par le service ou le script de construction - un frontal web, non utilisé pour le moment, bogué et qu'on n'a pas vraiment trouvé utile finalement
Plutôt que d'écrire une longue page de documentation, nous vous conseillons de lire ces scripts, ils sont abondamment commentés. Le plus important à retenir reste : les variables d'environnement comme PKGREPO
, PKGSOURCES
ou MARMITE
et l'utilisation de construction.sh
.
Utilisation de construction.sh
Note : il est préférable que vous ayez configuré votre utilisateur pour accéder à
sudo
, idéalement sans mot de passe afin d'automatiser les installations de chaque paquet (l'appel automatique à spackadd
a bien évidemment besoin des privilèges de root
). Vous pouvez utiliser le groupe sudo
dans /etc/sudoers
, la ligne est déjà présente, il suffit de la décommenter et de vous assurer que votre utilisateur fait partie du groupe sudo
. Consultez man sudo
ainsi que le fichier /etc/sudoers
pour en savoir plus.
Clonez le dépôt git des sources de 0Linux (cf. la page des Téléchargements) et déplacez-vous avant tout dans le répertoire scripts
(obligatoire, les scripts ne peuvent pas être appelés d'ailleurs).
Définissez les variables PKGSOURCES
et PKGREPO
d'emblée pour avoir un dépôt propre avec d'un part vos archives sources bien isolées du reste (PKGSOURCES
) et des paquets compilés bien rangés à part (PKGREPO
). Plus d'infos sur les variables d'environnement ici : Exécuter une recette.
Pour compiler et installer automatiquement des paquets ou une liste de paquets et pour reprendre l'exemple cité au début du script :
# Exemple : construire et installer les listes 'construction-kde' et # 'construction-gimp', le paquet 'libpng' ainsi que tous les paquets commençant # par « alsa » : # # ./construction.sh @kde @gimp libpng alsa*:
Lisez les scripts ! La documentation qu'ils contiennent est à jour et les essayer directement est bien plus parlant.
Ajouter ses propres recettes
Considérons que vous voulez ajouter à 0Linux votre bibliothèque préférée, disons libproot
, laquelle n'existe pas dans les dépôts officiels. Vous allez écrire votre recette et l'enregistrer dans le bon répertoire, sous 0Linux/b/libproot/libproot.recette
(b/
représentant les paquets contenant des bibliothèques). Vous vous placerez ensuite dans le répertoire scripts
, contenant construction.sh
, puis vous rendrez votre recette exécutable de préférence (chmod +x ../0Linux/b/libproot/libproot.recette
). Vous n'aurez plus qu'à compiler/installer votre bibliothèque favorite ainsi :
./construction.sh libproot
libproot
va télécharger et compiler le code source puis générer un paquet (que vous retrouverez sous $PKGREPO/ARCHITECTURE/b/libproot/libproot-xxx.spack
) et enfin l'installer sur votre système.
Vous procéderez de même si vous avez un ensemble de logiciels à compiler dans un ordre précis, à ceci près que vous créerez également une liste dans scripts/construction-*
contenant un ordre de compilation/installation à respecter.
Ainsi, si vous avez besoin de compiler et installer des paquets formant un ensemble appelé 'proot' et contenant 4 paquets nommés libproot
, proot-tools
, python-proot
et proot-extra
à installer dans cet ordre, vous créerez la liste scripts/construction-proot
, contenant un paquet par ligne dans l'ordre voulu :
libproot proot-tools python-proot proot-extra
Vous n'aurez plus qu'à appeler la commande suivante pour tout compiler/installer dans le bon ordre :
./construction.sh @proot