Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
documentation:compiler_0linux [25-08-2014 13:26]
appzer0 [Utilisation de construction.sh]
documentation:compiler_0linux [23-03-2015 13:05]
appzer0 [Compiler 0Linux]
Ligne 2: Ligne 2:
  
 0Linux propose un système de construction assistée pour faciliter la compilation et la création de recettes. 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 [[http://​git.tuxfamily.org/​0linux/​0linux.git?p=0linux/0linux.git;​a=tree;f=scripts|scripts]]. Il contient :+Tout se trouve dans les sources de 0Linux, dans le répertoire [[http://​git.tuxfamily.org/​0linux/​0linux.git/​tree/scripts|scripts]]. Il contient :
  
   * Un système de construction local comprenant :   * Un système de construction local comprenant :
-    * un script ''​[[http://​git.tuxfamily.org/​0linux/​0linux.git?p=0linux/0linux.git;​a=blob;​f=scripts/​construction.sh|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 script ''​[[http://​git.tuxfamily.org/​0linux/​0linux.git/​tree/scripts/​construction.sh|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 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 :   * un service de construction pour faire tourner un serveur de construction automatisé,​ comprenant :
-    * ''​[[http://​git.tuxfamily.org/​0linux/​0linux.git?p=0linux/0linux.git;​a=blob;​f=scripts/​service_construction.sh|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 !+    * ''​[[http://​git.tuxfamily.org/​0linux/​0linux.git/​tree/scripts/​service_construction.sh|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é par ''​service_construction.sh''​     * un script de vérification des dépendances des binaires générés ''​trouver_binaires_casses.sh'',​ appelé par ''​service_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é par ''​service_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é par ''​service_construction.sh''​
Ligne 18: Ligne 18:
  
 ====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). 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).
Ligne 34: Ligne 36:
  
 Lisez les scripts ! La documentation qu'ils contiennent est à jour et les essayer directement est bien plus parlant. 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 :
 +
 +<code bash>
 +./​construction.sh libproot
 +</​code>​
 +
 +''​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 :
 +
 +<file construction-proot>​
 +libproot
 +proot-tools
 +python-proot
 +proot-extra
 +</​file>​
 +
 +Vous n'​aurez plus qu'à appeler la commande suivante pour tout compiler/​installer dans le bon ordre :
 +
 +<code bash>
 +./​construction.sh @proot
 +</​code>​
 +----