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:23] appzer0 |
documentation:compiler_0linux [23-03-2015 13:05] (Version actuelle) 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 15: | Ligne 15: | ||
* un frontal web, non utilisé pour le moment, bogué et qu'on n'a pas vraiment trouvé utile finalement | * 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 : les variables d'environnement comme ''PKGREPO'' ou ''PKGSOURCES'' et l'utilisation de ''construction.sh''. | + | 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==== | ====Utilisation de construction.sh==== | ||
- | Clonez le dépôt git des sources de 0Linux (cf. [[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). | + | :!: 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. |
- | 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 ces variables ici : [[http://0.tuxfamily.org/doku.php/documentation/methode_de_creation_des_paquets_pour_0linux_native#executer_une_recette|Exécuter une recette]]. | + | 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). |
- | Pour compiler et installer automatiquement , des paquets ou une liste de paquets et pour reprendre l'exemple cité au début du script : | + | 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 : [[http://0.tuxfamily.org/doku.php/documentation/methode_de_creation_des_paquets_pour_0linux_native#executer_une_recette|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 : | ||
<code bash> | <code bash> | ||
Ligne 33: | Ligne 35: | ||
</code> | </code> | ||
- | **EN COURS DE RÉDACTION** | + | 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> | ||
+ | ---- |