Voici la traduction de pkg_basics.sgml Merci d'avance pour vos relectures.
-- Simon Paillard
<!-- Subversion revision of original English document "5004" --> <chapt id="pkg_basics">Les bases du syst�me de gestion des paquets Debian <p>Ce chapitre touche aux m�canismes internes de bas niveau du syst�me de gestion de paquets Debian. Si vous �tre avant tout int�ress�s par l'<em>utilisation</em> des outils appropri�s, passez au chapitres <ref id="pkgtools"> et <ref id="uptodate">. <sect id="package">Qu'est ce qu'un paquet Debian ? <p>Les paquets contiennent g�n�ralement tous les fichiers n�cessaires pour impl�menter un ensemble de commandes ou de fonctionnalit�s. <p>Il y a deux sortes de paquets Debian : <list> <item><em>Les paquets binaires</em> contenant les ex�cutables, les fichiers de configuration, les pages de manuel ou d'info, les informations de copyright et d'autres documentations. Ces paquets sont distribu�s sous un format d'archive sp�cifique � Debian (voir <ref id="deb-format">). Ils sont habituellement reconnaissables par l'extension � .deb �. Ils peuvent �tre install�s en utilisant l'utilitaire <tt>dpkg</tt> (�ventuellement avec une interface comme <prgn/aptitude/)�; vous trouverez plus de d�tails dans les pages de manuel. <item><em>Les paquets sources</em> sont constitu�s d'un fichier <tt>.dsc</tt> d�crivant le paquet source (incluant le nom des fichiers suivants), un fichier <tt>.orig.tar.gz</tt> contenant les sources originales non modifi�s au format tar compress� et habituellement un fichier <tt>.diff.gz</tt> contenant les modifications sp�cifiques � Debian par rapport au source original. L'utilitaire <tt>dpkg-source</tt> permet l'archivage et le d�sarchivage des sources Debian vous trouverez plus de d�tails dans les pages de manuel. (Le programme <prgn/apt-get/ peut �tre utilis� comme une interface pour <tt>dpkg-source</tt>.) </list> <p>L'installation de logiciels par le syst�me de paquet utilise les d�pendances qui sont d�finies avec attention par le responsable du paquet. Ces d�pendances sont document�es dans le fichier <tt>control</tt> associ� � chaque paquet. Par exemple, le paquet du compilateur GNU C (<package/gcc/) d�pend du paquet <package/binutils/ qui contient l'�diteur de lien et l'assembleur. Si un utilisateur essaye d'installer <package/gcc/ sans avoir pr�alablement install� <package/binutils/, le syst�me de gestion de paquets (dpkg) renverra un message d'erreur disant qu'il a aussi besoin de <package/binutils/ et arr�tera l'installation de <package/gcc/. (Cependant ceci peut �tre forc� par un utilisateur insistant, voir <manref name="dpkg" section="8">). Pour plus d'informations, voir <ref id="depends"> plus loin. <p>Les outils de gestion de paquets Debian peuvent �tre utilis�s pour : <list> <item>manipuler ou administrer les paquets ou une partie des paquets, <item>administrer les modifications locales (��overrides��) des fichiers d'un paquets, <item>aider les d�veloppeurs dans la construction de paquets et <item>aider les utilisateurs dans l'installation de paquets r�sidant sur un serveur FTP distant. </list> <sect id="deb-format">Quel est le format d'un paquet binaire Debian ? <p>Un paquet Debian ou un fichier d'archive Debian, contient les fichiers ex�cutables, les biblioth�ques, et la documentation li�e � une suite particuli�re de programme ou � un ensemble de programmes. Normalement, un fichier archive Debian a un nom se terminant par <tt>.deb</tt>. <p>Les m�canismes internes du format des paquets binaires Debian sont d�crits dans la page de manuel de <manref name="deb" section="5">. Ce format interne est susceptible de changer (entre chaque version principale de &debian;), donc utilisez toujours <manref name="dpkg-deb" section="1"> si vous avez besoin d'effectuer des op�rations de bas niveau sur des fichiers <tt>.deb</tt>. <sect id="pkgname">Pourquoi les noms des paquets Debian sont-ils si longs ? <p>Le nom des paquets binaires Debian se conforme � la convention suivante : <foo>_<Num�roVersion>-<Num�roR�visionDebian>_<DebianArchitecture>.deb <p>Notez que <tt>foo</tt> est suppos� �tre le nom du paquet. On peut conna�tre le nom associ� � un fichier d'archive Debian particulier (fichier .deb) d'une de ces mani�res : <list> <item>inspecter le fichier � Packages � dans le r�pertoire o� il a �t� stock� sur un site FTP d'archive Debian. Ce fichier contient une description pour chaque paquet ; le premier champ de chaque description est le nom formel du paquet. <item>utiliser la commande <tt>dpkg --info foo_VVV-RRR_AAA.deb</tt> (o� VVV, RRR et AAA sont respectivement le num�ro de version, le num�ro de r�vision, et l'architecture du paquet en question). Ceci affiche, entre autre, le nom du paquet correspondant au fichier archive. </list> <p>Le composant <tt>VVV</tt> est le num�ro de version fournit par le d�veloppeur amont. Il n'y a pas de standard ici, donc le num�ro de version peut avoir diff�rents formats comme � 19990513 � ou � 1.3.8pre1 �. <p>Le composant <tt>RRR</tt> est le num�ro de r�vision Debian et il est choisi par le d�veloppeur Debian (ou un utilisateur s'il choisit de construire lui-m�me son paquet). Ce num�ro correspond au niveau de r�vision du paquet Debian, ainsi, une nouvelle r�vision signifie g�n�ralement des modifications du Makefile Debian (<tt>debian/rules</tt>), du fichier de contr�le Debian <tt>debian/control</tt>), des scripts d'installation ou de d�sinstallation (<tt>debian/p*</tt>) ou des fichiers de configurations utilis�s avec le paquet. <p>Le composant <tt>AAA</tt> identifie le processeur pour lequel le paquet a �t� construit. Il s'agit g�n�ralement de <tt>i386</tt>, pour les processeurs compatibles avec l'Intel�386 et ult�rieurs. La structure de l'archive Debian <ref id="dirtree"> montre les autres possibilit�s. Pour plus de d�tails, consultez la description de ��l'architecture Debian�� dans la page de manuel <manref name="dpkg-architecture" section="1">. <sect id="controlfile">Qu'est ce qu'un fichier de contr�le ? <p>Des d�tails concernant le contenu du fichier <tt>control</tt> Debian sont fournis dans la charte Debian, au chapitre cinq, voir <ref id="debiandocs">. <p>Bri�vement, un fichier <tt>control</tt> est montr� ci-dessous pour le paquet Debian hello : <example> Package: hello Priority: optional Section: devel Installed-Size: 45 Maintainer: Adam Heath <[EMAIL PROTECTED]> Architecture: i386 Version: 1.3-16 Depends: libc6 (>= 2.1) Description: Le classique et bon exemple Le programme bonjour de GNU produit une salutation famili�re et amicale. Il <!-- XXX below 'non-programmers' were better, but this is a verbatim copy --> permet � des non-programmeurs d'utiliser un outil classique d'informatique qui leur serait autrement indisponible. . S�rieusement: c'est un exemple sur comment faire un paquet Debian. C'est la version Debian du programme du projet GNU � bonjour le monde � (qui est lui-m�me un exemple pour le projet de GNU). </example> <p>Le champ � Package � contient le nom du paquet. C'est le nom par lequel les outils de gestion de paquet peuvent le manipuler. Il est habituellement similaire mais pas n�cessairement le m�me � la premi�re cha�ne composant le nom de l'archive Debian. <p>Le champ de � Version � donne le num�ro de version du d�veloppeur amont et (dans le dernier composant) le niveau de r�vision du paquet de Debian de ce programme comme expliqu� dans <ref id="pkgname">. <!-- XXX missing name --> <p>Le champ � Architecture � indique pour quel processeur ce binaire particulier a �t� compil�. <p>Le champ � Depends � donne une liste des paquets qui doivent �tre install�s afin d'installer ce paquet avec succ�s. <p>Le champ � Installed-Size � indique l'espace disque utilis� par le paquet une fois install�. Ceci est pr�vu pour �tre employ� par les programmes d'installation pour v�rifier s'il y a suffisamment d'espace disque disponible pour installer le programme. <p>La ligne � Section � indique la section o� le paquet Debian est conserv� sur les sites FTP de Debian. <p>Le champ � Priority � indique l'importance d'un paquet pour l'installation, de sorte que des logiciels semi-intelligents comme dselect ou aptitude peuvent trier les paquets dans une cat�gorie par exemple les paquets install�s facultativement. Voir <ref id="priority">. <p>Le champ � Maintener � contient l'adresse �lectronique de la personne actuellement responsable de la maintenance du paquet. <p>Le champ � Description � fournit un bref r�sum� des fonctionnalit�s du paquet. <p>Pour plus d'informations sur les champs disponibles dans un paquet, reportez-vous au chapitre 5 de la charte Debian, � Fichiers control et leurs champs �. <sect id="conffile">Qu'est ce qu'un Debian conffile ? <p>Conffiles est une liste de fichiers de configuration (habituellement plac�s dans <tt>/etc</tt>) que le syst�me de gestion de paquet n'�crasera pas quand le paquet est mis � jour. Ceci s'assure que les valeurs locales pour ces fichiers seront pr�serv�es, et c'est un dispositif critique permettant la mise � niveau des paquets sur un syst�me en fonctionnement. <p>Pour d�terminer exactement quels fichiers sont pr�serv�s pendant la mise � jour, lancez : <example>dpkg --status package</example> et regardez la section � Conffiles: �. <sect id="maintscripts">Qu'est-ce qu'un script Debian preinst, postinst, prerm, et postrm ? <p>Ces fichiers sont des scripts ex�cutables qui sont lanc�s automatiquement avant ou apr�s l'installation d'un paquet. Avec le fichier appel� <tt>control</tt>, tous ces fichiers font partie de la section commande d'une archive Debian. <p>Les fichiers individuels sont : <taglist> <tag/preinst/ <item>Ce script est ex�cut� avant que le paquet soit d�sarchiv� du fichier archive (.deb). Beaucoup de scripts � preinst � arr�tent les services des paquets qui sont mis � jour jusqu'� ce que leurs installations ou leurs mises � jour soient termin�es (suivant le succ�s de l'ex�cution du script � postinst �). <tag/postinst/ <item>Ce script termine typiquement n'importe quelle configuration exig�e du paquet <tt>foo</tt> une fois que <tt>foo</tt> a �t� d�sarchiv� � partir du fichier d'archive Debian (� deb �). Souvent le script � postinst � demande � l'utilisateur des informations et avertit l'utilisateur que s'il accepte les valeurs par d�faut, il devrait se souvenir de revenir en arri�re et de reconfigurer le paquet lorsque la situation le demandera. Beaucoup de scripts � postinst � ex�cutent toutes les commandes n�cessaires au d�marrage ou au red�marrage d'un service une fois qu'un nouveau paquet a �t� install� ou mis � jour. <tag/prerm/ <item>Ce script arr�te g�n�ralement tous les d�mons qui sont associ�s avec le paquet. Il est ex�cut� avant la suppression des fichiers associ�s au paquet. <tag/postrm/ <item>Ce script modifie g�n�ralement les liens ou les autres fichiers associ�s avec <tt>foo</tt> et/ou supprime les fichiers cr��s par le paquet (Voir aussi <ref id="virtual">.) </taglist> <p>Actuellement tous les fichiers de commande peuvent �tre trouv�s dans le r�pertoire <tt>/var/lib/dpkg/info</tt>. Les fichiers concernant le paquet <tt>foo</tt> commencent par le nom "foo" et sont suivis par les extensions "preinst", "postinst" etc. Le fichier <tt>foo.list</tt> dans ce r�pertoire liste tous les fichiers install�s par le paquet <tt>foo</tt>. (Notez que l'emplacement de ces fichiers est interne � dpkg ; vous ne devriez pas compter sur eux). <sect id="priority">Qu'est ce qu'un paquet <em/Essential/, <em/Required/, <em/Important/, <em/Standard/, <em/Optional/ ou <em/Extra/ ? <p>� chaque paquet Debian est assign�e une priorit� par les d�veloppeurs de la distribution, c'est une aide pour le syst�me de gestion de paquet. Les priorit�s sont : <list> <item>N�cessaire (<strong>Required</strong>) : paquets n�cessaire pour le fonctionnement correct du syst�me. <p>Ceci inclut tous les outils n�cessaires pour la r�paration d'un syst�me d�fectueux. Vous ne devez pas supprimer ces paquets ou votre syst�me risque de devenir compl�tement instable et vous ne pourrez probablement pas utiliser dpkg pour corriger cela. Avec seulement les paquets n�cessaires, le syst�me sera probablement inutilisable mais il aura suffisamment de fonctionnalit�s pour permettre de d�marrer et d'installer plus de logiciels. <item><strong>Important</strong> : paquets devant �tre pr�sents sur tous syst�mes de type Unix <p>Les autres paquets sans lesquels le syst�me ne fonctionnera pas correctement ou ne sera pas utilisable ont cette priorit�. Ceci n'inclut <em>PAS</em> Emacs, X, TeX ou aucune autre grosse application. Ces paquets constituent seulement l'infrastructure de base. <item><strong>Standard</strong> : paquets pr�sents sur n'importe quel syst�me Linux, y compris un syst�me raisonnablement petit mais pas limit� � un syst�me en mode console. Des outils sont disponibles pour naviguer sur Internet (en utilisant w3m), envoyer des courriels (avec mutt) et t�l�charger des fichiers depuis des serveurs FTP. <p> C'est ce qui sera install� par d�faut si les utilisateurs ne s�lectionnent rien. Cela n'inclut pas les grosses applications, mais int�gre l'interpr�teur Python et certains serveurs comme OpenSSH (pour l'administration � distance), Exim (pour la livraison des courriels, m�me s'il peut �tre configur� en mode local uniquement), un serveur identd (pidentd) et le portmapper RPC (<tt>portmap</tt>). Sont �galement int�gr�es certaines documentations g�n�rales consid�r�es utiles par la plupart des utilisateurs. <item>Optionnel (<strong>Optional</strong>) : paquets incluant tous ce que vous pourriez raisonnablement vouloir installer si vous ne savez pas ce que c'est ou si vous n'avez pas pr�cis� de condition. <p>Ceci inclut X, une distribution TeX compl�te et beaucoup d'applications. <item><strong>Extra</strong> : paquets qui entrent en conflit avec d'autres ayant des priorit�s plus �lev�es ou ayant des conditions particuli�res qui les rendent peu convenables pour �tre optionnels. Ils sont utiles seulement si vous savez d�j� ce qu'ils font. </list> <p>Si vous faites une installation Debian par d�faut tous les paquets ayant une priorit� <strong>standard</strong> ou sup�rieur seront install�s sur votre syst�me. Si vous choisissez des t�ches pr�d�finies, vous obtiendrez aussi les paquets de priorit� plus faible. <p>De plus, certain paquets sont marqu�s comme essentiel (<strong>Essential</strong>) puisqu'ils sont absolument n�cessaire pour un fonctionnement correct du syst�me. Les outils de gestion de paquets refuseront de les supprimer. <sect id="virtual">Qu'est-ce qu'un paquet virtuel ? <p>Un paquet virtuel est un nom g�n�rique qui s'applique � n'importe quel groupe de paquets fournissant une fonctionnalit� de base semblable. Par exemple, les programmes <tt>tin</tt> et <tt>trn</tt> sont des programmes de lecture de nouvelles Usenet et devraient donc satisfaire n'importe quelle d�pendance d'un programme exigeant la pr�sence d'un programme de lecture de nouvelles sur le syst�me, afin de fonctionner ou pour �tre utiles. Les deux sont donc capables de fournir le paquet virtuel appel� <tt>news-reader</tt>. <p>De la m�me fa�on, <tt>smail</tt> et <tt>sendmail</tt> fournissent tous les deux les fonctionnalit�s d'un agent de transport de courrier �lectronique. Les deux sont donc capables de fournir le paquet virtuel <tt>mail-transport-agent</tt>. Si l'un ou l'autre est install�, alors n'importe quel programme exigeant l'installation d'un agent de transport de courrier �lectronique sera satisfait par l'existence de ce paquet virtuel. <p>Debian fournit un m�canisme de sorte que, si plus d'un paquet fournissant le m�me paquet virtuel est install� sur le syst�me, alors les administrateurs peuvent choisir leur paquet pr�f�r�. La commande appropri�e est <tt>update-alternatives</tt>, et est d�crite plus loin dans <ref id="diverse">. <sect id="depends">Que signifie qu'un paquet d�pend (<em/Depends/), recommande (<em/Recommends/), sugg�re (<em/Suggests/), est en conflit (<em/Conflicts/), remplace (<em/Replaces/) ou fournit (<em/Provides/) un autre paquet ? <p>Le syst�me de paquet Debian a une gamme de � d�pendances � sur les paquets qui permet d'indiquer (avec un simple drapeau) � quel niveau un programme A peut fonctionner ind�pendamment de l'existence du programme B sur un syst�me donn� : <list> <item>Le paquet A <em>d�pend</em> du paquet B si B doit absolument �tre install� pour pouvoir ex�cuter A. Dans certain cas, A d�pend non seulement de B mais d'une version de B. Dans ce cas, la d�pendance de version est une limite basse, dans le sens que A d�pend de toutes versions plus r�centes que celle sp�cifi�. <item>Le paquet A <em>recommande</em> le paquet B si le responsable du paquet pense que la plupart des utilisateurs ne voudraient pas A sans avoir �galement la fonctionnalit� fournie par B. <item>Le paquet A <em>sugg�re</em> le paquet B si B contient des fichiers qui sont li�s aux (et augmentent habituellement) fonctionnalit�s de A. <item>Le paquet A est en <em>conflit</em> avec le paquet B quand A ne peut pas fonctionner si B est install� sur le syst�me. Le plus souvent les conflits sont des cas o� A contient des fichiers qui sont une am�lioration de ceux de B. Le conflit est souvent combin� avec le remplacement. <item>Le paquet A <em>remplace</em> le paquet B quand les fichiers install�s par B sont supprim�s et (dans certains cas) �cras�s par les fichiers de A. <item>Le paquet A <em>fournit</em> le paquet B quand tous les fichiers et toutes les fonctionnalit�s de B sont incorpor�s dans A. Ce m�canisme fournit aux utilisateurs ayant une contrainte d'espace disque un moyen d'obtenir seulement la partie du paquet dont ils ont vraiment besoin. </list> <p>Une information plus d�taill�e sur l'utilisation de chacun de ces termes peut �tre trouv�e dans la charte Debian. <sect id="pre-depends">Quel est le sens de � Pre-Depends � ? <p>� Pre-Depends � est une d�pendance particuil�re. Dans le cas de la plupart des paquets, <tt>dpkg</tt> d�sarchivera les fichiers archives (c.-�-d. les fichiers <tt>.deb</tt>) ind�pendamment de l'existance sur le syst�me des fichiers dont il d�pend. De mani�re simpliste, le d�sarchivage signifie que <tt>dpkg</tt> extraira les fichiers � partir du fichier archive qui sont cens�s �tre install�s sur votre syst�me de fichiers, et les mettra en place. Si ces paquets d�pendent de l'existence de quelques autres paquets sur votre syst�me, <tt>dpkg</tt> refusera d'accomplir l'installation (par l'ex�cution de l'action de configuration) jusqu'� ce que les autres paquets soient install�s. <p>Cependant, pour certain paquets, <tt>dpkg</tt> refusera de les d�sarchiver jusqu'� ce que certaines d�pendances soient r�solues. De tels paquets sont dits � Pr�-d�pendant � de la pr�sence de quelques autres paquets. Le projet Debian fournissait ce m�canisme pour g�rer la mise � jour de syst�me utilisant le format <tt>a.out</tt> vers le format <tt>ELF</tt>, o� l'ordre de d�sarchivage �tait critique. Il y a d'autre situations de mise � jour o� cette m�thode est utile, par exemple pour les paquets ayant une priorit� � required � et des d�pendances sur la libc. <p>Comme ci-dessus, une information plus d�taill�e sur l'utilisation de ce terme peut �tre trouv�e dans la charte Debian. <sect id="pkgstatus">Quelle est la signification de <em/unknown/, <em/install/, <em/remove/, <em/purge/ et <em/hold/ dans le statut du paquet ? <p>Ces drapeaux indiquent ce que souhaite faire l'utilisateur avec un paquet (ils sont positionn�s par les actions de l'utilisateur dans la section � Section � de <tt>dselect</tt> ou par des appels directs de <tt>dpkg</tt> par l'utilisateur). <p>Leurs significations sont : <list> <item>unknown - L'utilisateur n'a jamais indiqu� s'il souhaitait le paquet. <item>install - L'utilisateur souhaite installer ou mettre � jour le paquet. <item>remove - L'utilisateur souhaite supprimer le paquet, mais ne d�sire pas effacer les fichiers de configuration existants. <item>purge - L'utilisateur souhaite supprimer le paquet compl�tement, incluant ses fichiers de configuration. <item>hold - L'utilisateur ne souhaite pas traiter le paquet, c.-�-d. qu'il veut conserver la version courante avec l'�tat actuel de celui-ci. </list> <sect id="puttingonhold">Comment est-ce que je mets un paquet en � hold � ? <p>Il y a trois moyens de bloquer un paquet, avec dpkg, aptitude ou dselect. <p>Avec dpkg, vous devez exporter la liste de s�lection des paquets, avec la commande : <example>dpkg --get-selections \* > selections.txt</example> puis �diter le fichier <file/selections.txt/, changer la ligne contenant le paquet que vous souhaitez conserver, par exemple pour <package/libc6/, de ceci : <example>libc6 install</example> � ceci : <example>libc6 hold</example> sauvegarder le fichier et le recharger dans la base de donn�es de dpkg avec : <example>dpkg --set-selections < selections.txt</example> <p>Avec aptitude, vous pouvez conserver un paquet en faisant <example>aptitude hold package_name</example> et enlever le drapeau � hold � avec <example>aptitude unhold package_name</example> <p>Avec dselect, vous devez entrer dans l'�cran [S]elect, trouver le paquet que vous souhaitez conserver dans l'�tat actuel, et appuyer sur la touche '=' (ou sur 'H'). Les changements seront pris en compte � la sortie de l'�cran [S]elect. <sect id="sourcepkgs">Comment est-ce que j'installe un paquet source ? <p>Les paquets sources Debian ne peuvent pas �tre v�ritablement install�s, ils sont seulement d�paquet�s dans n'importe quel r�pertoire o� vous voulez en construire les paquets binaires. <p>Les paquets sources sont distribu�s sur la plupart des serveurs o� vous pouvez obtenir les paquets binaires. Si vous configurez votre fichier <manref name="sources.list" section="5"> pour APT en ajoutant la ligne � deb-src � appropri�e, vous pourrez facilement t�l�charger toutes les sources des paquets en lan�ant la commande <example>apt-get source foo</example> <p>Pour vous aider r�ellement � la construction du paquet de source, Debian fournit un m�canisme pour les d�pendances de construction. Ceci signifie que le responsable du paquet tient une liste des autres paquets n�cessaires � la construction du paquet. Pour voir comment cela fonctione, ex�cutez <example>apt-get build-dep foo</example> avant de construire les sources. <sect id="sourcebuild">Comment est-ce que je peux construire les paquets binaires depuis les paquets sources ? <p>La m�thode recommand�e est d'utiliser les diff�rents outils de haut-niveau (��wrappers��). Voici comment faire en utilisant les outils <tt>devscripts</tt>. Installez le paquet si cela n'est pas d�j� fait. <p>Maintenant, commencez par r�cup�rer le paquet source�: <example>apt-get source foo</example> puis entrez dans l'arborescence source�: <example>cd foo-*</example> Puis installez les d�pendances de construction n�cessaires (s'il y en a)�: <example>sudo apt-get build-dep foo</example> Puis cr�ez une version particuli�re de votre propre construction (afin de ne pas les confondre plus tard lorsque Debian publiera sa propre nouvelle version)�: <example>dch -l local 'Blah blah blah'</example> Et enfin construisez votre paquet�: <example>debuild -us -uc</example> Si tout a correctement fonctionn�, vous deviez pouvoir installer votre paquet avec la commande�: <example>sudo dpkg -i ../*.deb</example> <p>Si vous pr�f�rez effectuer les op�rations vous-m�me, et ne voulez pas utiliser <tt>devscripts</tt>, suivez cette proc�dure�:</p> <p>Vous aurez besoin de tous les fichiers foo_*.dsc, foo_*.tar.gz et foo_*.diff.gz pour compiler les sources (remarquez que pour certain paquets il n'y a pas de fichier .diff.gz, ce sont les paquets natifs � Debian). <p>Une fois que vous les avez r�cup�r�s (voir <ref id="sourcepkgs">), si vous avez le paquet <package/dpkg-dev/ install�, la commande suivante : <example>dpkg-source -x foo_version-revision.dsc</example> d�sarchivera le paquet dans un r�pertoire nomm� <tt>foo-version</tt>. <p>Si vous souhaitez juste compiler le paquet, vous devez vous placer dans le r�pertoire <tt>foo-version</tt> et lancer la commande <example>dpkg-buildpackage -rfakeroot -b</example> pour construire le paquet (notez que la paquet <package/fakeroot/ est aussi n�cessaire) et faites <example>dpkg -i ../foo_version-revision_arch.deb</example> pour installer le nouveau paquet. <sect id="creatingdebs">Comment est-ce que je cr�e un paquet Debian ? <p>Pour une description plus d�taill�e, lisez le � guide des nouveaux responsables Debian � disponible dans le paquet <package/maint-guide/ ou � l'adresse <url id="http://www.debian.org/doc/devel-manuals#maint-guide">.
Index: pkg_basics.sgml =================================================================== --- pkg_basics.sgml (revision 5165) +++ pkg_basics.sgml (copie de travail) @@ -1,8 +1,13 @@ -<!-- Subversion revision of original English document "3669" --> +<!-- Subversion revision of original English document "5004" --> <chapt id="pkg_basics">Les bases du système de gestion des paquets Debian +<p>Ce chapitre touche aux mécanismes internes de bas niveau du système de +gestion de paquets Debian. Si vous être avant tout intéressés par +l'<em>utilisation</em> des outils appropriés, passez au chapitres <ref +id="pkgtools"> et <ref id="uptodate">. + <sect id="package">Qu'est ce qu'un paquet Debian ? <p>Les paquets contiennent généralement tous les fichiers nécessaires pour @@ -15,7 +20,8 @@ et d'autres documentations. Ces paquets sont distribués sous un format d'archive spécifique à Debian (voir <ref id="deb-format">). Ils sont habituellement reconnaissables par l'extension « .deb ». Ils peuvent être installés en utilisant l'utilitaire - <tt>dpkg</tt> vous trouverez plus de détails dans les pages de manuel. + <tt>dpkg</tt> (éventuellement avec une interface comme <prgn/aptitude/) ; + vous trouverez plus de détails dans les pages de manuel. <item><em>Les paquets sources</em> sont constitués d'un fichier <tt>.dsc</tt> décrivant le paquet source (incluant le nom des fichiers suivants), un fichier <tt>.orig.tar.gz</tt> @@ -23,6 +29,7 @@ fichier <tt>.diff.gz</tt> contenant les modifications spécifiques à Debian par rapport au source original. L'utilitaire <tt>dpkg-source</tt> permet l'archivage et le désarchivage des sources Debian vous trouverez plus de détails dans les pages de manuel. + (Le programme <prgn/apt-get/ peut être utilisé comme une interface pour <tt>dpkg-source</tt>.) </list> <p>L'installation de logiciels par le système de paquet utilise les dépendances qui @@ -39,8 +46,7 @@ <p>Les outils de gestion de paquets Debian peuvent être utilisés pour : <list> <item>manipuler ou administrer les paquets ou une partie des paquets, - <item>aider les utilisateurs dans le découpage de paquets qui doivent être transmis sur - des médium de taille limitée comme les disquettes, + <item>administrer les modifications locales (« overrides ») des fichiers d'un paquets, <item>aider les développeurs dans la construction de paquets et <item>aider les utilisateurs dans l'installation de paquets résidant sur un serveur FTP distant. @@ -53,15 +59,16 @@ un ensemble de programmes. Normalement, un fichier archive Debian a un nom se terminant par <tt>.deb</tt>. -<p>Les mécanismes internes du format des paquets binaires Debian est décrit dans la page +<p>Les mécanismes internes du format des paquets binaires Debian sont décrits dans la page de manuel de <manref name="deb" section="5">. Ce format interne est susceptible de changer -(entre chaque version principale de &debian;), donc utilisez toujours <manref name="dpkg-deb" section="1"> -pour manipuler les fichiers <tt>.deb</tt>. +(entre chaque version principale de &debian;), donc utilisez toujours +<manref name="dpkg-deb" section="1"> si vous avez besoin d'effectuer des opérations de +bas niveau sur des fichiers <tt>.deb</tt>. <sect id="pkgname">Pourquoi les noms des paquets Debian sont-ils si longs ? <p>Le nom des paquets binaires Debian se conforme à la convention suivante : -<foo>_<NuméroVersion>-<NuméroRévisionDebian>.deb +<foo>_<NuméroVersion>-<NuméroRévisionDebian>_<DebianArchitecture>.deb <p>Notez que <tt>foo</tt> est supposé être le nom du paquet. On peut connaître le nom associé à un fichier d'archive Debian particulier (fichier .deb) d'une de ces manières : @@ -69,8 +76,8 @@ <item>inspecter le fichier « Packages » dans le répertoire où il a été stocké sur un site FTP d'archive Debian. Ce fichier contient une description pour chaque paquet ; le premier champ de chaque description est le nom formel du paquet. - <item>utiliser la commande <tt>dpkg --info foo_VVV-RRR.deb</tt> (où VVV et RRR sont - respectivement le numéro de version et de révision du paquet en question). Ceci affiche, + <item>utiliser la commande <tt>dpkg --info foo_VVV-RRR_AAA.deb</tt> (où VVV, RRR et AAA sont + respectivement le numéro de version, le numéro de révision, et l'architecture du paquet en question). Ceci affiche, entre autre, le nom du paquet correspondant au fichier archive. </list> @@ -85,13 +92,13 @@ fichier de contrôle Debian <tt>debian/control</tt>), des scripts d'installation ou de désinstallation (<tt>debian/p*</tt>) ou des fichiers de configurations utilisés avec le paquet. +<p>Le composant <tt>AAA</tt> identifie le processeur pour lequel le paquet a été construit. +Il s'agit généralement de <tt>i386</tt>, pour les processeurs compatibles avec +l'Intel 386 et ultérieurs. +La structure de l'archive Debian <ref id="dirtree"> montre les autres possibilités. +Pour plus de détails, consultez la description de « l'architecture Debian » +dans la page de manuel <manref name="dpkg-architecture" section="1">. -<!-- -<p>The <tt>Arch</tt> component identifies the processor for which -the package was built. This is commonly <tt>i386</tt>, which refers to -chips compatible to Intel's 386 or later versions. For other -possibilities see <ref id="dirtree" name="Debian's FTP directory structure">. ---> <sect id="controlfile">Qu'est ce qu'un fichier de contrôle ? @@ -140,11 +147,10 @@ vérifier s'il y a suffisamment d'espace disque disponible pour installer le programme. <p>La ligne « Section » indique la section où le paquet Debian est conservé sur -les sites FTP de Debian. C'est le nom d'un sous-répertoire (dans l'un des répertoires -principaux, voir <ref id="dirtree">) où le paquet est conservé. +les sites FTP de Debian. <p>Le champ « Priority » indique l'importance d'un paquet pour l'installation, -de sorte que des logiciels semi-intelligents comme dselect ou console-apt peuvent trier +de sorte que des logiciels semi-intelligents comme dselect ou aptitude peuvent trier les paquets dans une catégorie par exemple les paquets installés facultativement. Voir <ref id="priority">. @@ -208,7 +214,7 @@ (Notez que l'emplacement de ces fichiers est interne à dpkg ; vous ne devriez pas compter sur eux). -<sect id="priority">Qu'est ce qu'un paquet <em/Essential/ <em/Required/, <em/Important/, <em/Standard/, +<sect id="priority">Qu'est ce qu'un paquet <em/Essential/, <em/Required/, <em/Important/, <em/Standard/, <em/Optional/ ou <em/Extra/ ? <p>À chaque paquet Debian est assignée une priorité par les développeurs de la distribution, @@ -225,21 +231,25 @@ de logiciels. <item><strong>Important</strong> : paquets devant être présents sur tous systèmes de type Unix <p>Les autres paquets sans lesquels le système ne fonctionnera pas correctement ou ne sera pas - utilisable ont cette priorité. Ceci n'inclut <em>PAS</em> Emacs, X11, TeX ou aucune autre + utilisable ont cette priorité. Ceci n'inclut <em>PAS</em> Emacs, X, TeX ou aucune autre grosse application. Ces paquets constituent seulement l'infrastructure de base. -<!-- JFS: Review for etch, since some development packages might be removed - in the near future #301138 --> <item><strong>Standard</strong> : paquets présents sur n'importe quel système Linux, y compris un système raisonnablement petit mais pas limité à un système en mode console. + Des outils sont disponibles pour naviguer sur Internet (en utilisant w3m), + envoyer des courriels (avec mutt) et télécharger des fichiers depuis des + serveurs FTP. <p> C'est ce qui sera installé par défaut si les utilisateurs ne sélectionnent - rien. Cela n'inclut pas les grosses applications, mais intègre certains logiciels - de développement comme les compilateurs GNU C et C++ (<tt>gcc</tt>, <tt>g++</tt>), - GNU make, ainsi que l'interpréteur Python et certains serveurs comme OpenSSH, - le démon d'impression BSD (<tt>lpr</tt>) et le portmapper RPC (<tt>portmap</tt>). + rien. Cela n'inclut pas les grosses applications, mais intègre + l'interpréteur Python et certains serveurs comme OpenSSH (pour + l'administration à distance), Exim (pour la livraison des courriels, même + s'il peut être configuré en mode local uniquement), un serveur identd + (pidentd) et le portmapper RPC (<tt>portmap</tt>). Sont également intégrées + certaines documentations générales considérées utiles par la plupart des + utilisateurs. <item>Optionnel (<strong>Optional</strong>) : paquets incluant tous ce que vous pourriez raisonnablement vouloir installer si vous ne savez pas ce que c'est ou si vous n'avez pas précisé de condition. - <p>Ceci inclut X11, une distribution TeX complète et beaucoup d'applications. + <p>Ceci inclut X, une distribution TeX complète et beaucoup d'applications. <item><strong>Extra</strong> : paquets qui entrent en conflit avec d'autres ayant des priorités plus élevées ou ayant des conditions particulières qui les rendent peu convenables pour être optionnels. Ils sont utiles seulement si vous savez déjà ce qu'ils font. @@ -330,7 +340,7 @@ <p>Comme ci-dessus, une information plus détaillée sur l'utilisation de ce terme peut être trouvée dans la charte Debian. -<sect id="pkgstatus">Quelle est la signification de <em/unknown/, <em/install/, <em/remove/ +<sect id="pkgstatus">Quelle est la signification de <em/unknown/, <em/install/, <em/remove/, <em/purge/ et <em/hold/ dans le statut du paquet ? <p>Ces drapeaux indiquent ce que souhaite faire l'utilisateur avec un paquet @@ -353,7 +363,7 @@ <p>Il y a trois moyens de bloquer un paquet, avec dpkg, aptitude ou dselect. -<p>Avec dpkg, vous devez seulement exporter la liste de sélection des paquets, +<p>Avec dpkg, vous devez exporter la liste de sélection des paquets, avec la commande : <example>dpkg --get-selections \* > selections.txt</example> puis éditer le fichier <file/selections.txt/, changer la ligne contenant @@ -396,8 +406,38 @@ avant de construire les sources. <sect id="sourcebuild">Comment est-ce que je peux construire les paquets binaires depuis - les paquets sources ? +les paquets sources ? +<p>La méthode recommandée est d'utiliser les différents outils de haut-niveau +(« wrappers »). Voici comment faire en utilisant les outils +<tt>devscripts</tt>. Installez le paquet si cela n'est pas déjà fait. + +<p>Maintenant, commencez par récupérer le paquet source : + <example>apt-get source foo</example> + +puis entrez dans l'arborescence source : + + <example>cd foo-*</example> + +Puis installez les dépendances de construction nécessaires (s'il y en a) : + + <example>sudo apt-get build-dep foo</example> + +Puis créez une version particulière de votre propre construction (afin de ne pas les confondre plus tard lorsque Debian publiera sa propre nouvelle version) : + + <example>dch -l local 'Blah blah blah'</example> + +Et enfin construisez votre paquet : + + <example>debuild -us -uc</example> + +Si tout a correctement fonctionné, vous deviez pouvoir installer votre paquet avec la commande : + + <example>sudo dpkg -i ../*.deb</example> + +<p>Si vous préférez effectuer les opérations vous-même, et ne voulez pas utiliser +<tt>devscripts</tt>, suivez cette procédure :</p> + <p>Vous aurez besoin de tous les fichiers foo_*.dsc, foo_*.tar.gz et foo_*.diff.gz pour compiler les sources (remarquez que pour certain paquets il n'y a pas de fichier .diff.gz, ce sont les paquets natifs à Debian).