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édentesRévision précédente
Prochaine révision
Révision précédente
projets:systemesreseaux:compiledebian [2014/01/22 20:21] – [Compilation des sources provenant d'un paquet Debian] christian.jacolotprojets:systemesreseaux:compiledebian [2024/04/16 22:26] (Version actuelle) – modification externe 127.0.0.1
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>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki