<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.docbook.org/xml/4.2/docbookx.dtd">
<article lang="fr">
<articleinfo>
  <title>Créer un paquet Debian binaire</title>
  <authorgroup>
  <author>
        <firstname>Nowicki</firstname>
        <surname>Christophe</surname>
		<affiliation>
        <address format="linespecific">
        	<email>nowick_c@epita.fr</email>
        </address>
        </affiliation>
  </author>
  </authorgroup>
  <keywordset>
        <keyword>Linux</keyword>
        <keyword>Debian</keyword>
		<keyword>paquet</keyword>
		<keyword>binaire</keyword>
  </keywordset>
  <date>mars 2004</date>
  <copyright>
      <year>2004</year>
      <holder>Nowicki Christophe</holder>
  </copyright>
</articleinfo>

<abstract>
  <para>
	Ce document explique comment créer un paquet
	binaire pour la distribution Debian. Ce paquet peut contenir des
	script shell, des images ou de la documentation.
  </para>
</abstract>

<sect1>
  <title>Création de l'arboresence</title>
  <para>
	Il faut créer un répertoire avec le nom de votre 
	paquet. Celui-ci doit contenir un répertoire
	<filename moreinfo="none">DEBIAN</filename>.
  </para>
  <para>
	<screen format="linespecific">
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">mkdir -p paquet/DEBIAN</userinput>
	</screen>	
  </para>
  <para>
	Le gestionnaire de paquets de la distribution
	va reproduire la structure à
	l'intérieur du répertoire <filename moreinfo="none">paquet</filename> sur le
	système de fichier.
  </para>
  <para>
	<screen format="linespecific">
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">mkdir paquet/etc</userinput>
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">cp fichier_de_conf paquet/etc</userinput>
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">mkdir -p paquet/usr/bin</userinput>
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">cp script.sh paquet/usr/bin</userinput>
	</screen>	
  </para>
  <para>
	Vous pouvez ajouter des informations (<filename moreinfo="none">copyright</filename>,
	<filename moreinfo="none">README</filename>, <filename moreinfo="none">changelog</filename>,
	<filename moreinfo="none">changelog.Debian</filename> ... )
	à propos de votre paquet dans le répertoire :
	<filename moreinfo="none">/usr/share/doc/paquet</filename>.
  </para>
  <para>
	<screen format="linespecific">
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">mkdir -p paquet/usr/share/doc/paquet</userinput>
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">cat copyright</userinput>
	  <computeroutput moreinfo="none"><![CDATA[
	  This package was debianized
	  by Nom Prenom <utilisateur@domaine.com>

	  	It was downloaded from http://www.domaine.com

	  Upstream Author: Nom de l'auteur <user@domaine.com>

	  Copyright:

		This software is copyright (c) 2002 by Auteur.

	  Released under the terms of the GPL; see
	  /usr/share/common-licenses/GPL.]]></computeroutput>
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">cat README | gzip -9 &gt; paquet/usr/share/doc/paquet/README.gz</userinput>
  </screen>
</para>
  <note><para>Vous pouvez compresser les fichiers dans ce répertoire
	  (sauf le fichier <filename moreinfo="none">copyright</filename>) 
	  pour réduire la taille du 
	  paquet sur le système. </para></note>
  <para>
	Une fois que vous aurez fini l'arboresence du répertoire
	<filename moreinfo="none">paquet</filename>, celle-ci devra ressembler à ceci :
  </para>
  <para><screen format="linespecific"><![CDATA[paquet
|-- DEBIAN
|   `-- control
|-- etc
|   `-- fichier_de_conf
`-- usr
    |-- bin
    |   `-- script.sh
    `-- share
        `-- doc
            `-- paquet
                |-- README
                |-- changelog
                |-- changelog.Debian.gz
                `-- copyright
	  ]]></screen>
</para>
</sect1>

<sect1>
  <title>Le fichier control</title>
  <para>
	Une fois que vous avez copié tous les 
	fichiers dans le répertoire, il ne vous reste
	plus qu'à créer le fichier <filename moreinfo="none">control</filename> qui est utilisé
	par le gestionnaire de paquets de la distribution
	Debian. Il vous permet de contrôler les dépendances du
	paquet.
  </para>
  <para><programlisting format="linespecific"><![CDATA[
Package: nom du paquet
Version: 1.0-1
Section: base
Priority: optional
Architecture: all
Depends: bash (>= 2.0)
Maintainer: Nom Prénom <user@domaine.com>
Description: script de test 
 c'est un script de test]]></programlisting></para>
 <para>
   La ligne Depends permet de gérer les dépendances
   de votre paquet. La syntaxe de cette ligne
   est décrite dans <ulink url="http://www.debian.org/doc/debian-policy/ch-controlfields.html#s5.6.9">la
	 charte Debian</ulink>.
 </para>
</sect1>

<sect1>
  <title>Créer le paquet à l'aide de dpkg-deb</title>
  <para>Il ne vous reste plus qu'à créer le paquet à l'aide
	de la commande dpkg-deb.
  </para>
  <para>
	<screen format="linespecific">
	  <prompt moreinfo="none">$</prompt><userinput moreinfo="none">dpkg-deb --build paquet</userinput>
	  <computeroutput moreinfo="none">dpkg-deb: building package `paquet' in `paquet.deb'.</computeroutput>
	</screen>
  </para>
  <para>Ce paquet peut être installé / désinstallé comme n'importe quel paquet Debian
	à l'aide de la commande dpkg.</para>
   <para>
	<screen format="linespecific">
	  <prompt moreinfo="none">#</prompt><userinput moreinfo="none">dpkg -i paquet.deb</userinput>
	  <computeroutput moreinfo="none"><![CDATA[Selecting previously deselected package paquet.
	  (Reading database ... 101856 files and directories currently installed.)
	  Unpacking paquet (from paquet.deb) ...
	  Setting up paquet (1.1-1) ...]]></computeroutput></screen>
  </para>
</sect1>

</article>
