Outils pour utilisateurs

Outils du site


projets:systemesreseaux:compiledebian

Différences

Ci-dessous, les différences entre deux révisions de la page.

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
projets:systemesreseaux:compiledebian [2014/01/22 21:25]
christian.jacolot
projets:systemesreseaux:compiledebian [2016/07/19 15:36] (Version actuelle)
Ligne 1: Ligne 1:
 +====== 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 <​code>#​ apt-get install build-essential</​code>​ 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'':​
 +<​code>​
 +$ cd travail
 +$ apt-cache search hello
 +$ apt-get source hello
 +</​code>​
 +
 +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:
 +<​code>​
 +$ cd hello-x.y # n'​oublier pas de remplacer x.y par les bons chiffres/​nombres
 +$ dpkg-buildpackage -b
 +</​code>​
 +
 +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:
 +<​code>​
 +$ dpkg -x hello_x.y-revision_debian_i386.deb .
 +</​code>​
 +
 +Pour juste afficher le contenu, utiliser la commande:
 +<​code>​
 +$ dpkg -c hello_x.y-revision_debian_i386.deb
 +</​code>​
 +
 +Pour extraire tous les fichiers (binaire et les fichiers Debian de gestion de ce paquet), il faut utiliser la commande:
 +<​code>​
 +$ dpkg-deb -R hello_x.y-revision_debian_i386.deb hello
 +</​code>​
 +
 +Et enfin pour installer notre paquet Debian fraichement reconstruit:​
 +<​code>​
 +$ sudo dpkg -i hello_x.y-revision_debian_i386.deb
 +</​code>​
 +
 +
 +===== 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 <​code>#​ apt-get install dh-make</​code>​.
 +
 +A partir des sources du projet GNU ''​Hello'',​ nous allons construire un paquet source Debian.
 +
 +Récupération des sources:
 +<​code>​
 +$ wget http://​ftp.gnu.org/​gnu/​hello/​hello-2.9.tar.gz
 +</​code>​
 +
 +Renommer l'​archive des sources pour s'​adapter aux règles Debian:
 +<​code>​
 +$ mv hello-2.9.tar.gz hello_2.9.orig.tar.gz # faites attention au _
 +</​code>​
 +
 +Extraire les fichiers de l'​archive:​
 +<​code>​
 +$ tar xf hello_2.9.orig.tar.gz
 +$ cd hello-2.9
 +</​code>​
 +
 +Lancer l'​outil Debian de transformation:​
 +<​code>​
 +$ dh_make
 +  # choisir s comme single binary
 +  # entrée pour confirmer les champs suivants
 +</​code>​
 +
 +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:​
 +<​code>​
 +$ ./configure # choisir les options si besoin
 +</​code>​
 +
 +Création du paquet source:
 +<​code>​
 +$ dpkg-buildpackage ​ -S -us -uc
 +</​code>​
 +
 +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, ):
 +<​code>​
 +$ dpkg-buildpackage -us -uc # utilise -b : construire un binaire
 +</​code>​
 +
 +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:
 +<​code>​
 +$ sudo dpkg -i hello_2.9-1_i386.deb
 +</​code>​
  
projets/systemesreseaux/compiledebian.txt · Dernière modification: 2016/07/19 15:36 (modification externe)