====== Compilation paquet source Debian ====== ===== Prérequis pour la compilation des sources ===== Pour compiler les sources d'un paquet Debian, il vous faut les paquets Debian suivants: * build essential # apt-get install build-essential apporte tout ce qu'il faut pour la compilation. ===== Compilation des sources provenant d'un paquet Debian ===== Le but est de construire un fichier binaire exécutable (ou plusieurs suivant les applications) à partir des fichiers sources provenant d'un paquet Debian. L'exemple qui sera utilisé se trouve dans les dépôts source de Debian. Il s'agit du fameux exemple ''Hello World'': $ cd travail $ apt-cache search hello $ apt-get source hello Plusieurs fichiers et répertoire sont apparus dans le répertoire de ''travail'': * fichier ''hello_x.y.orig.tar.gz'' qui est le fichier qui contient les sources du ''Hello World'' provenant du site GNU (voir article précédent), * fichier ''hello_x.y-revision_debian.debian.tar.gz'' qui contient les fichiers pour produire un paquet Debian à partir des sources, * fichier ''hello_x.y-revision_debian.dsc'' qui contient la description du paquet en (sous forme de texte), * et un répertoire ''hello-x.y'' qui contient le tout (source originale + information Debian) pour produire un paquet binaire Debian. Production du paquet binaire à partir des sources: $ cd hello-x.y # n'oublier pas de remplacer x.y par les bons chiffres/nombres $ dpkg-buildpackage -b Dans le répertoire parent, on obtient deux fichiers: * fichier ''hello_x.y-revision_debian_i386.changes'' qui contient la description du paquet et les changements intervenus dans cette version, * fichier ''hello_x.y-revision_debian_i386.deb'' qui contient le binaire et les données nécessaires au fonctionnement du binaire. La commande suivante permet d'extraire les fichiers qui seront installés sur le système: $ dpkg -x hello_x.y-revision_debian_i386.deb . Pour juste afficher le contenu, utiliser la commande: $ dpkg -c hello_x.y-revision_debian_i386.deb Pour extraire tous les fichiers (binaire et les fichiers Debian de gestion de ce paquet), il faut utiliser la commande: $ dpkg-deb -R hello_x.y-revision_debian_i386.deb hello Et enfin pour installer notre paquet Debian fraichement reconstruit: $ sudo dpkg -i hello_x.y-revision_debian_i386.deb ===== Création d'un paquet source Debian ===== ===== Prérequis pour la compilation des sources ===== Pour créer une paquet Debian, il vous faut les paquets Debian suivants: * dh-make # apt-get install dh-make. A partir des sources du projet GNU ''Hello'', nous allons construire un paquet source Debian. Récupération des sources: $ wget http://ftp.gnu.org/gnu/hello/hello-2.9.tar.gz Renommer l'archive des sources pour s'adapter aux règles Debian: $ mv hello-2.9.tar.gz hello_2.9.orig.tar.gz # faites attention au _ Extraire les fichiers de l'archive: $ tar xf hello_2.9.orig.tar.gz $ cd hello-2.9 Lancer l'outil Debian de transformation: $ dh_make # choisir s comme single binary # entrée pour confirmer les champs suivants Un répertoire ''debian'' a été créé. Les fichiers dans ce répertoire doivent être remplis ou adaptés aux besoins, et notamment les fichiers suivants: * control: données sur le paquet, description, dépendances * changelog: données sur les modifications apportées aux sources * rules: règles de construction du paquet * copyright: information sur la license Configurer l'application: $ ./configure # choisir les options si besoin Création du paquet source: $ dpkg-buildpackage -S -us -uc Cela nous génère les fichiers suivants dans le répertoire parent: * hello_2.9-1.debian.tar.gz, les sources à la sauce Debian, * hello_2.9-1.dsc, le fichier de description du paquet, * hello_2.9-1_source.changes, les modifications apportées à ce paquet. Pour construire les binaires à partir des sources (si on n'a pas besoin du paquet source, ): $ dpkg-buildpackage -us -uc # utilise -b : construire un binaire Ce qui nous génère les fichiers suivants dans le répertoire parent: * hello_2.9-1_i386.deb, le paquet binaire à installer sur le système, * hello_2.9-1_i386.changes, * hello_2.9-1.dsc. Il ne reste plus qu'à installer ce nouveau paquet binaire: $ sudo dpkg -i hello_2.9-1_i386.deb