Outils pour utilisateurs

Outils du site


projets:systemesreseaux:compiledebian

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
projets/systemesreseaux/compiledebian.txt · Dernière modification: 2016/07/19 15:36 (modification externe)