Création de paquets
From FrugalWiki
|
La création de paquets (ou empaquetage) se fait grâce à des scripts que l'on appelle des FrugalBuild.
Grâce à ces scripts, l'application nommé makepkg, va pouvoir télécharger les sources du logiciel que l'on veut empaqueter pour les compiler et simuler une installation des binaires obtenus, tout ça dans un environnement matrice que l'on appelle le chroot.
Si tout se passe bien, makepkg créera l'archive .fpm qui contiendra les fichiers binaires obtenus après la compilation pour que le logiciel soit installé grâce à pacman-g2.
Cependant, pour créer un paquet, il faut des pré-requis.
Pré-requis
Obtenir sa copie du FST
Installation des logiciels requis
Tout d'abord vous aurez au moins besoin de git et des outils inclus dans pacman-tools
Configuation de Sudo et Makepkg
Il est préférable (et plus pratique) d'utiliser makepkg avec sudo.
Editez le fichier /etc/sudoers.
Vous pouvez créer un groupe d'utilisateurs nommé “devels” et y mettre votre compte utilistaeur dans ce groupe, il suffira alors d'ajouter au fichier sudoers:
%devels ALL=NOPASSWD:/usr/bin/makepkg
Vous pouvez également donner les droits d'utiliser makepkg avec sudo à votre utilisateur, dans ce cas ce sera
nom_d'utilisateur ALL=NOPASSWD:/usr/bin/makepkg
Attention plus de mot de passe vous sera demandé pour éxécuter la commande makepkg en tant qu'utilisateur.
Idéalement, il est bien d'avoir sa propre copie du FST (Frugalware Source Tree), c'est-à-dire, les sources du dépôt current. Ca vous permettra de voir les FrugalBuild qu'il y a et cela vous permettra de vous en inspirer. Mais il y a deux façons pour avoir sa copie :
Copie du FST dans le dossier par défaut
Vous pouvez l'obtenir en tant que root en tapant :
Ceci va créer la copie du FST dans le dossier par défaut:
/var/fst
Le dossier par défaut est défini dans le fichier
/etc/repoman
Vous pouvez changer le dossier par défaut, mais préférez alors la seconde solution.
Copie du FST dans un dossier personnel
Vous pouvez l'obtenir en tant qu'utilisateur en créant le fichier .repoman.conf dans votre répertoire /home pour lui ajouter cette ligne :
fst_root=~/git
Comme ça, les sources iront directement dans le répertoire ~/git, ou un répertoire que vous aurez choisi en tapant :
A noter que vous pouvez également directement obtenir une copie du dépôt git avec:
Entraînons nous avec un exemple simple
Pourquoi utiliser un environnement chroot pour compiler ses paquets ?
Tout simplement parce que le chroot permet de trouver les véritables dépendances pour votre paquet sans pour autant “sacrifier” votre système.
Le chroot, c'est une sorte de matrice qui joue le rôle de votre système dans votre système. Pour créer le chroot, il vous suffira juste d'installer les paquets nécessaires en tapant la commande suivante. Makepkg s'occupera de télécharger et d'installer ce qu'il faudra lorsque vous ferez votre premier FrugalBuild.
Par défaut, le chroot se situe dans le répertoire /var/chroot. Vous pouvez changer son emplacement en modifiant le fichier /etc/makepkg.conf
Essayez cette exemple simple et détaillé puis placez-vous dans le répertoire où se trouve le FrugalBuild. Et lancez la commande:
Attention la toute première fois, cela risque d'être un peu long car tout les paquets devel-core vont etre téléchargés afin de créer l'environnement chroot.
Ensuite cela va créer le paquet suivant votre environnement chroot (si toutefois le FrugalBuild ne contient pas d'erreurs).
Si vous voulez compiler le paquet sur votre système directement, il faut utiliser cette commande:
Ce n'est pas conseillé car vous risquez de passer à coté de certaines dépendances.
Il est recommandé de consulter toutes les commandes possibles avec Makepkg.
Allez plus loin
FrugalBuild
Un exemple vierge est disponible.
Si vous avez des difficultés avec votre FrugalBuild, n'hésitez pas à demander de l'aide sur ircou sur le forum.
Pour plus d'informations sur les FrugalBuild, n'oubliez pas le manuel en tapant :
Composition d'un FrugalBuild
Avant d'aller plus loin, il vous faut déjà connaitre l'outil de base de la création de paquet. C'est-à-dire, le FrugalBuild. C'est grâce à lui que vous donnerez les “instructions” à makepkg pour qu'il puisse accomplir sa tâche.
Voici un FrugalBuild vierge :
- Exemple de FrugalBuild vierge
Les explications
Les fonctions
Cas particuliers
Prêt à contribuer ?
Ne gardez pas vos paquets fpm que pour vous, vous pouvez les partager en les proposant aux développeurs.
Il suffit pour çà de vous inscrire sur la mailing list anglophone frugalware-devel:
Même si l'anglais vous rebutte, n'ayez crainte. Une fois souscris à la liste envoyez votre mail à
- frugalware-devel AT frugalware POINT org
Avec votre FrugalBuild (et patches si besoin) attaché au mail en demande une "review".
L'équipe de développement se fera un plaisir de vous répondre et vous aider si votre FrugalBuild comporte des erreurs.
Par la suite, il est préférable de cloner le dépôt git pour des raisons pratiques.
Une fois le FrugalBuild sans fautes, on vous demandera de faire un patch git.
Bon packaging !