Ce guide suppose que le lecteur a une connaissance préalable consistante de la compilation et de l'installation de logiciels depuis des sources dans les distributions Linux. Tout au long de ce guide des lignes de commande (CLI) seront utilisées, et vous devez donc être à l'aise dans l'utilisation d'un terminal. Vous trouverez ci-dessous une courte liste des connaissances préalables.
Description :
GNU Make est un outil de construction logicielle très important. Il est utilisé pour transformer une tâche de compilation complexe en une action triviale. Il est important de savoir comment l'utiliser, parce que nous stockons une grande partie de l'information sur le processus de création de paquet dans un Makefile.
Références :
GNU Make has a well-written man page and extensive info documentation. Documentation is also available at the GNU website.
Description :
Ce script est inclus dans presque toutes les sources Linux, particulièrement avec les programmes compilés dans des langages tels que C et C++. Il est utilisé pour générer un Makefile (fichier utilisé par make) configuré conformément à votre système. Les outils standards de génération de paquets de Debian l'utilisent, il est donc important que vous sachiez ce que le script configure
fait. Il n'est pas nécessaire de savoir créer un script configure
vous-même, puisque l'auteur du logiciel (ou l'application autoconf) vont le créer. Dans tous les cas, vous devrez parfois l'ajuster afin que le paquet Ubuntu se construise correctement.
Rapide marche à suivre :
Tout d'abord, récupérez la source de GNU Hello. Depuis un terminal :
wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz # get the package tar -xzf hello-2.1.1.tar.gz # unpack it cd hello-2.1.1/
Ensuite, lancez le script configure
à l'aide de la commande ./configure afin de générer un fichier de Makefile adapté à votre système.
Vous pouvez spécifier des options en ligne de commande pour ./configure
. Par exemple, GNU Hello s'installera dans le répertoire /usr/local/
par défaut. Vous pourriez choisir de l'installer ailleurs (dans un répertoire personnel, par exemple ~/programs/
).
./configure --prefix="$HOME/programs/" # spécifie le répertoire d'installation.
La commande ./configure --help permet de lister toutes les options disponibles de ./configure
.
Références :
Des informations sur ./configure
peuvent être trouvées dans la documentation de make.
Au-delà de l'installation basique de programmes, apt et dpkg ont un grand nombre de fonctionnalités qui sont utiles pour la création de paquets.
apt-cache dump - liste tous les paquet dans le cache. Cette commande est particulièrement pratique en association avec un branchement grep comme apt-cache dump | grep foo pour rechercher des paquets dont le nom ou les dépendences incluent « foo ».
apt-cache policy - liste les dépôts (main/restricted/universe/multiverse) dans lequels des paquets existent.
apt-cache show - affiche des informations sur le paquet binaire.
apt-cache showsrc - affiche des informations sur le paquet source.
apt-cache rdepends - montre les dépendances inverses pour un paquet (quels paquets nécessitent celui qu'on demande).
dpkg -S - montre le paquet binaire auquel appartient un certain fichier
dpkg -l - montre les paquets actuellement installés. Ceci est similaire à apt-cache dump mais pour les paquets installés.
dpkg -c - montre les contenus d'un paquet binaire. Cette commande est utile pour s'assurer que les fichiers sont installés aux bons endroits.
dpkg -f - montre le fichier de contrôle pour un paquet binaire. Cette commande est utile pour s'assurer que les dépendances sont correctes.
grep-dctrl - permet la recherche d'informations spécialisées dans les paquets. C'est un usage spécifique du paquet grep (mais pas installé par défaut).
Le programme diff peut être utilisé pour comparer deux fichiers et créer des correctifs (patchs). Un exemple typique pourrait être diff -ruN file.old file.new > file.diff. Cette commande va créer un diff (récursivement si des dossiers sont utilisés) qui va montrer les changements, ou « delta », entre les deux fichiers.
Le programme patch est utilisé pour appliquer un correctif (patch) (habituellement créé par diff ou un autre programme similaire) sur un fichier ou un dossier. Afin d'appliquer le correctif créé ci-dessus, nous pourrions invoquer patch -p0 < file.diff. Le -p indique à patch la tolérance applicable aux chemins contenus dans le correctif. -p0 indique de ne rien modifier.