1 <?xml version=
"1.0" encoding=
"iso-8859-15" standalone=
"no"?>
2 <!DOCTYPE refentry PUBLIC
"-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
5 <!ENTITY % aptent SYSTEM
"apt.ent.fr">
13 &apt-author.jgunthorpe;
17 <!-- The last update date -->
18 <date>29 Février
2004</date>
22 <refentrytitle>apt-ftparchive
</refentrytitle>
23 <manvolnum>1</manvolnum>
26 <refnamediv><refname>apt-ftparchive
</refname>
27 <refpurpose>Un outil pour créer des index
33 <command>apt-ftparchive
</command>
34 <arg><option>-hvdsq
</option></arg><arg>
35 <option>--md5
</option></arg><arg>
36 <option>--delink
</option></arg>
37 <arg><option>--readonly
</option></arg>
38 <arg><option>--contents
</option></arg>
39 <arg><option>-o=
<replaceable>option de configuration
</replaceable></option></arg>
40 <arg><option>-c=
<replaceable>fichier
</replaceable></option></arg>
42 <arg>packages
<arg choice=
"plain" rep=
"repeat"><replaceable>chemin
</replaceable></arg><arg><replaceable>override
</replaceable><arg><replaceable>préfixe-de-chemin
</replaceable></arg></arg></arg>
43 <arg>sources
<arg choice=
"plain" rep=
"repeat"><replaceable>chemin
</replaceable></arg><arg><replaceable>override
</replaceable><arg><replaceable>préfixe-de-chemin
</replaceable></arg></arg></arg>
44 <arg>contents
<arg choice=
"plain"><replaceable>chemin
</replaceable></arg></arg>
45 <arg>release
<arg choice=
"plain"><replaceable>chemin
</replaceable></arg></arg>
46 <arg>generate
<arg choice=
"plain"><replaceable>fichier-de-configuration
</replaceable></arg><arg choice=
"plain" rep=
"repeat"><replaceable>section
</replaceable></arg></arg>
47 <arg>clean
<arg choice=
"plain"><replaceable>fichier-de-configuration
</replaceable></arg></arg>
52 <refsect1><title>Description
</title>
54 <command>apt-ftparchive
</command> est l'outil en ligne de commande qui crée les index
55 dont APT se sert pour accéder aux sources des distributions. Un index doit
56 être créé pour un site et basé sur le contenu de ce site.
58 <para><command>apt-ftparchive
</command> est un ensemble comprenant le programme
59 &dpkg-scanpackages; et toutes ses fonctionnalités via la commande
60 <literal>packages
</literal> ; il comprend aussi un générateur de fichier
61 «
Contents
», la commande
<literal>contents
</literal>, et une technique
62 élaborée pour «
scripter
» le processus de création d'une archive
66 <command>Apt-ftparchive
</command> peut utiliser lui-même des bases de données binaires
67 pour «
cacher
» le contenu d'un fichier .deb
; il n'a pas
68 besoin de programmes extérieurs, sauf
&gzip;. Lors d'une exécution, il
69 vérifie les changements dans les fichiers et crée les fichiers compressés
73 À moins que l'option
<option>-h
</option> ou
<option>--help
</option> ne soit donnée, l'une des
74 commandes suivantes doit être présente
:
77 <varlistentry><term>packages
</term>
79 La commande
<literal>packages
</literal> crée un fichier «
Packages
» à partir d'une
80 arborescence. Elle recherche récursivement à travers le répertoire donné
81 les fichiers .deb et, pour chaque fichier trouvé, envoie une entrée pour ce
82 paquet sur la sortie standard. Cette commande est approximativement
83 équivalente à &dpkg-scanpackages;.
86 On peut se servir de l'option
<option>--db
</option> pour demander un cache binaire.
90 <varlistentry><term>sources
</term>
92 La commande
<literal>sources
</literal> crée un index des sources à partir d'une
93 arborescence. Elle recherche récursivement à travers le répertoire donné
94 les fichiers .dsc et, pour chaque fichier trouvé, envoie une entrée pour ce
95 paquet sur la sortie standard. Cette commande est approximativement
96 équivalente à &dpkg-scansources;.
99 Quand on précise un fichier «
override
», c'est un fichier source
100 avec une extension .src qui est recherché. On peut se servir de l'option
101 <option>--source-override
</option> pour changer de fichier source d'«
override
».
105 <varlistentry><term>contents
</term>
107 La commande
<literal>contents
</literal> crée un fichier «
Contents
» à partir d'une
108 arborescence. Elle recherche récursivement à travers le répertoire donné
109 les fichiers .deb et, pour chaque fichier trouvé, lit la liste des
110 fichiers. Elle trie la liste des fichiers correspondant à des paquets et
111 l'envoie sur la sortie standard. Les répertoires ne font pas partie du
112 résultat. Quand un fichier appartient à plusieurs paquets, une virgule
115 <para>On peut se servir de l'option
<option>--db
</option> pour demander un cache binaire.
119 <varlistentry><term>release
</term>
121 La commande
<literal>release
</literal> crée un fichier Releases à partir
122 d'un répertoire. Elle cherche récursivement dans ce répertoire les
123 fichiers Packages, Packages.gz, Packages.bz2, Sources, Sources.gz,
124 Sources.bz2, Release et md5sum.txt. Elle envoie alors un fichier Release
125 sur la sortie standard avec un résumé MD5 et un résumé SHA1 pour chaque
129 La valeur des autres champs du fichier Release est tirée de la valeur
130 correspondante dans
<literal>APT::FTPArchive::Release
</literal>,
131 p. ex.
<literal>APT::FTPArchive::Release::Origin
</literal>. Les champs reconnus
132 sont :
<literal>Origin
</literal>,
<literal>Label
</literal>,
<literal>Suite
</literal>,
133 <literal>Version
</literal>,
<literal>Codename
</literal>,
<literal>Date
</literal>,
134 <literal>Architectures
</literal>,
<literal>Components
</literal>,
135 <literal>Description
</literal>.
140 <varlistentry><term>generate
</term>
142 La commande
<literal>generate
</literal> est conçue pour être exécutable par le
143 programme cron et elle crée un index en suivant le fichier de configuration
144 donné. Le langage de configuration fournit un moyen souple de préciser
145 index et répertoires aussi bien que les paramètres requis.
149 <varlistentry><term>clean
</term>
151 La commande
<literal>clean
</literal> range les bases de données utilisées par le
152 fichier de configuration en supprimant les enregistrements qui ne sont
160 <refsect1><title>Configuration de la commande generate
</title>
162 La commande
<literal>generate
</literal> utilise un fichier de configuration pour
163 décrire l'archive qui va être créée. Le format de ce fichier est le format
164 ISC classique utilisé par des outils ISC comme bind
8 et dhcpd. Le fichier &apt-conf;
165 décrit ce format. Il faut noter que l'analyse de ce fichier se fait
166 par section tandis que celle d'&apt-conf; se fait par arborescence. Cela
167 n'affecte que l'usage de l'étiquette de visée (scope tag).
170 Ce fichier de configuration possède quatre sections, décrites ci-dessous.
173 <refsect2><title>La section Dir
</title>
175 La section
<literal>Dir
</literal> définit les répertoires standards où situer les
176 fichiers nécessaires au processus de création. Ces répertoires sont
177 précédés de chemins relatifs définis dans les sections suivantes de manière
178 à produire un chemin absolu et complet.
181 <varlistentry><term>ArchiveDir
</term>
183 Indique la racine de l'archive FTP
; Pour une configuration Debian
185 c'est le répertoire qui contient le fichier
<filename>ls-LR
</filename> et les noeuds
189 <varlistentry><term>OverrideDir
</term>
191 Indique l'emplacement des fichiers d'«
override
».
194 <varlistentry><term>CacheDir
</term>
196 Indique l'emplacement des fichiers de cache.
199 <varlistentry><term>FileListDir
</term>
201 Indique l'emplacement des fichiers contenant la liste des fichiers (si on se
202 sert de la valeur
<literal>FileList
</literal> définie plus bas).
208 <refsect2><title>La section Default
</title>
210 La section
<literal>Default
</literal> précise les valeurs par défaut et les paramètres
211 qui contrôlent la marche du générateur. Ces valeurs peuvent être annulées dans
212 d'autres sections (paramètrage par section).
215 <varlistentry><term>Packages::Compress
</term>
217 Indique comment sont compressés les fichiers d'index. C'est une chaîne qui
218 contient des valeurs séparées par des espaces
; elle contient au moins
219 l'une des valeurs suivantes
: «
.
» (pas de compression),
220 «
gzip
», «
bzip2
».
221 Par défaut, c'est la chaîne «
. gzip
».
224 <varlistentry><term>Packages::Extensions
</term>
226 Indique la liste par défaut des extensions de fichier qui constituent des
227 paquets. Par défaut, c'est «
.deb
».
230 <varlistentry><term>Sources::Compress
</term>
232 Identique à
<literal>Packages::Compress
</literal> mais précise comment sont compressés
233 les fichiers sources.
236 <varlistentry><term>Sources::Extensions
</term>
238 Indique la liste par défaut des extensions de fichier qui constituent des
239 fichiers sources. Par défaut, c'est «
.dsc
».
242 <varlistentry><term>Contents::Compress
</term>
244 Identique à
<literal>Packages::Compress
</literal> mais précise comment sont compressés
245 les fichiers «
Contents
».
248 <varlistentry><term>DeLinkLimit
</term>
250 Indique le nombre de kilooctets à délier (et à remplacer par des liens en dur)
251 pour chaque exécution. On s'en sert, pour chaque section, avec le paramètre
252 <literal>External-Links
</literal>.
255 <varlistentry><term>FileMode
</term>
257 Indique le système de permissions des fichiers d'index créés. Par défaut,
258 c'est le mode
0644. Tous les fichiers d'index ont ce mode et le masque
259 utilisateur (umasq) est ignoré.
265 <refsect2><title>La section TreeDefault
</title>
267 On indique les valeurs par défaut particulières à la section
268 <literal>Tree
</literal>. Toutes ces variables sont des variables de
269 substitution
; les chaînes $(DIST),
270 $(SECTION) et $(ARCH) sont remplacées par leur valeur respective.
273 <varlistentry><term>MaxContentsChange
</term>
275 Indique le nombre de kilooctets de fichiers «
Contents
» qui sont
276 créés chaque jour. Les fichiers «
Contents
» sont tirés au sort
277 selon le système
<emphasis>round-robin
</emphasis> de manière que, sur
278 plusieurs jours, tous soient reconstruits.
281 <varlistentry><term>ContentsAge
</term>
283 Contrôle le nombre de jours pendant lequel un fichier «
Contents
»
284 peut être utilisé sans actualisation. Quand cette limite est franchie,
285 le «
mtime
» du fichier «
Contents
» est mis à jour. Cela
286 peut arriver quand un fichier est modifié sans que cela modifie le fichier
287 «
Contents
» (modification par «
override
» par exemple).
288 Un délai est permis dans l'espoir que de nouveaux «
.deb
» seront
289 installés, exigeant un nouveau «
Contents
». Par
290 défaut ce nombre vaut
10, l'unité étant le jour.
293 <varlistentry><term>Directory
</term>
295 Indique la racine de l'arborescence des «
.deb
». Par défaut, c'est
296 <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/
</filename>.
300 <varlistentry><term>SrcDirectory
</term>
302 Indique la racine de l'arborescence des paquets source. Par défaut, c'est
303 <filename>$(DIST)/$(SECTION)/source/
</filename>.
307 <varlistentry><term>Packages
</term>
309 Indique le fichier «
Packages
» créé. Par défaut, c'est
310 <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/Packages
</filename>.
314 <varlistentry><term>Sources
</term>
316 Indique le fichier «
Packages
» crée. Par défaut, c'est
317 <filename>$(DIST)/$(SECTION)/source/Sources
</filename>.
321 <varlistentry><term>InternalPrefix
</term>
322 <listitem><para>Indique un préfixe de chemin
; ce préfixe fait qu'un lien symbolique sera
323 considéré comme un lien interne plutôt que comme un lien externe. Par défaut,
324 c'est
<filename>$(DIST)/$(SECTION)/
</filename>.
328 <varlistentry><term>Contents
</term>
330 Indique le fichier «
Contents
» créé. Par défaut, c'est
331 <filename>$(DIST)/Contents-$(ARCH)
</filename>. Quand le paramètrage fait que
332 différents fichiers «
Packages
» se réfèrent à un seul fichier
333 «
Contents
»,
<command>apt-ftparchive
</command> les intègre automatiquement.
337 <varlistentry><term>Contents::Header
</term>
339 Indique l'en-tête à préfixer au fichier «
Contents
» créé.
343 <varlistentry><term>BinCacheDB
</term>
345 Indique la base de données binaire servant de cache pour cette section.
346 Différentes sections peuvent partager cette base de données.
349 <varlistentry><term>FileList
</term>
351 Indique qu'au lieu de lire l'arborescence,
<command>apt-ftparchive
</command> doit lire
352 la liste de fichiers dans le fichier donné en argument. Les noms relatifs
353 sont préfixés par le répertoire de l'archive.
356 <varlistentry><term>SourceFileList
</term>
358 Indique qu'au lieu de lire l'arborescence,
<command>apt-ftparchive
</command> doit lire
359 la liste de fichiers dans le fichier donné en argument. Les noms relatifs
360 sont préfixés par le répertoire de l'archive. On s'en sert pour traiter les
368 <refsect2><title>La section Tree
</title>
370 La section
<literal>Tree
</literal> définit une arborescence debian classique avec
371 un répertoire de base, différentes sections dans ce répertoire et
372 différentes architectures dans chaque section. Le chemin exact est défini
373 par la variable de substitution
<literal>Directory
</literal>.
376 La section
<literal>Tree
</literal> accepte une étiquette de visée (scope tag) qui
377 détermine la variable
<literal>$(DIST)
</literal> et la racine de l'arborescence
378 (le chemin est préfixé par
<literal>ArchiveDir
</literal>). C'est par exemple
:
379 <filename>dists/woody
</filename>.
381 <para>Tous les paramètres définis dans la section
<literal>TreeDefault
</literal> peuvent
382 s'utiliser dans la section
<literal>Tree
</literal> ainsi que les trois nouvelles
386 Quand il exécute la section
<literal>Tree
</literal>,
<command>apt-ftparchive
</command>
388 <informalexample><programlisting>
390 for j in Architectures do
391 Generate for DIST=scope SECTION=i ARCH=j
392 </programlisting></informalexample>
396 <varlistentry><term>Sections
</term>
398 C'est une liste de sections séparées par des espaces qui appartiennent à une
399 distribution
; classiquement, on trouve
<literal>main contrib non-free
</literal>.
403 <varlistentry><term>Architectures
</term>
405 C'est une liste de toutes les architectures qui appartiennent à chaque
406 section. L'architecture spéciale «
source
» indique que
407 l'arborescence est une arborescence de sources.
411 <varlistentry><term>BinOverride
</term>
413 Indique le fichier binaire d'«
override
». Ce fichier contient
414 des informations sur la section, la priorité et le responsable du paquet.
418 <varlistentry><term>SrcOverride
</term>
420 Indique le fichier source d'«
override
». Ce fichier
421 contient des informations sur la section.
425 <varlistentry><term>ExtraOverride
</term>
427 Indique un autre fichier d'«
override
» pour les binaires.
431 <varlistentry><term>SrcExtraOverride
</term>
433 Indique un autre fichier d'«
override
» pour les sources.
439 <refsect2><title>La section BinDirectory
</title>
441 La section
<literal>bindirectory
</literal> définit une arborescence binaire sans
442 structure particulière. L'étiquette de visée (scope tag) indique l'emplacement
443 du répertoire binaire et le paramètrage est identique à celui pour la
444 section
<literal>Tree
</literal> sans substitution de variables ou au paramètrage de
445 <literal>Section
</literal><literal>Architecture
</literal>.
448 <varlistentry><term>Packages
</term>
450 Indique le fichier «
Packages
» créé.
454 <varlistentry><term>SrcPackages
</term>
456 Indique le fichier «
Sources
» créé. L'un des deux fichiers,
457 <literal>Packages
</literal> ou
<literal>SrcPackages
</literal> est nécessaire.
461 <varlistentry><term>Contents
</term>
463 Indique le fichier «
Contents
» créé.
466 <varlistentry><term>Binoverride
</term>
468 Indique le fichier d'«
override
» pour les binaires.
472 <varlistentry><term>SrcOverride
</term>
474 Indique le fichier d'«
override
» pour les sources.
478 <varlistentry><term>ExtraOverride
</term>
480 Indique un autre fichier d'«
override
» pour les binaires.
484 <varlistentry><term>SrcExtraOverride
</term>
486 Indique un autre fichier d'«
override
» pour les sources.
490 <varlistentry><term>BinCacheDB
</term>
492 Indique une base de données cache.
496 <varlistentry><term>PathPrefix
</term>
498 Ajoute un chemin à tous les chemins créés.
501 <varlistentry><term>FileList, SourceFileList
</term>
503 Indique le fichier contenant la liste des fichiers.
510 <refsect1><title>Le fichier d'«
Override
» pour les binaires.
</title>
512 Le fichier d'«
Override
» est pleinement compatible avec
513 &dpkg-scanpackages;. Il contient quatre champs séparés par des espaces. Le
514 premier est le nom du paquet
; le deuxième est la priorité à donner à ce
515 paquet
; le troisième est sa section et le dernier champ est un champ
516 pour changer le nom du responsable de paquet.
518 <para>Le champ du responsable est de cette forme
:
519 <literallayout>old [// oldn]* =
> new
</literallayout>
521 <literallayout>new
</literallayout>
522 La première forme permet de spécifier de vieilles adresses dans une liste (le
523 séparateur est la double barre oblique). Si l'une de ces deux formes est
524 rencontrée, la valeur de new remplace la valeur du champ. La deuxième forme
525 remplace inconditionnellement le champ.
529 <refsect1><title>Le fichier d'«
Override
» pour les sources
</title>
531 Le fichier d'«
Override
» est pleinement compatible avec
532 &dpkg-scansources;. Il contient deux champs. Le premier est le nom du paquet
533 source
; le second, sa section.
537 <refsect1><title>Le fichier supplémentaire d'«
Override
»
</title>
539 Le fichier supplémentaire d'«
Override
» permet d'ajouter ou de
540 remplacer des étiquettes sur la sortie. Il possède trois colonnes
:
541 la première représente le paquet, la seconde est une étiquette et la
542 troisième en fin de ligne est la nouvelle valeur.
546 <refsect1><title>Les options
</title>
550 <varlistentry><term><option>--md5
</option></term>
552 Créer la somme de contrôle MD5. Cette option est activée par défaut. Quand
553 elle est désactivée, les fichiers d'index n'ont pas les champs MD5Sum là où
555 Élément de configuration
:
<literal>APT::FTPArchive::MD5
</literal>.
559 <varlistentry><term><option>-d
</option></term><term><option>--db
</option></term>
561 Utiliser une base de données binaire pour cache. Cela n'a aucun effet sur la
563 Élément de configuration
:
<literal>APT::FTPArchive::DB
</literal>.
567 <varlistentry><term><option>-q
</option></term><term><option>--quiet
</option></term>
569 Mode silencieux
; cette commande produit une sortie destinée à
570 l'enregistrement dans un fichier-journal en omettant les indicateurs de
571 progression. Un plus grand nombre de «
q
» (
2 au plus) produit un
573 On peut aussi utiliser
<option>-q=#
</option> pour positionner le niveau de silence,
574 et annuler le fichier de configuration.
575 Élément de configuration
:
<literal>quiet
</literal>.
579 <varlistentry><term><option>--delink
</option></term>
581 Faire une déliaison. Si
<literal>External-Links
</literal> est activé, cette option
582 permet réellement la déliaison des fichiers. Par défaut, elle est activée mais
583 elle peut être désactivée avec l'option
<option>--no-delink
</option>.
584 Élément de configuration
:
<literal>APT::FTPArchive::DeLinkAct
</literal>.
588 <varlistentry><term><option>--contents
</option></term>
590 Permettre la création d'un fichier «
Contents
». Quand cette option
591 est activée et que les index sont créés sous forme de base de données binaire,
592 la liste des fichiers est aussi extraite et conservée dans la base de données
593 pour un usage futur. Avec la commande generate, cette option permet la
594 création de fichiers «
Contents
». Par défaut, elle est activée.
595 Élément de configuration
:
<literal>APT::FTPArchive::Contents
</literal>.
599 <varlistentry><term><option>-s
</option></term><term><option>--source-override
</option></term>
601 Indique le fichier d'«
override
» à utiliser avec la commande
602 <literal>sources
</literal>.
603 Élément de configuration
:
<literal>APT::FTPArchive::SourceOverride
</literal>.
605 </varlistentry><varlistentry><term><option>--readonly
</option></term>
607 N'autoriser que la lecture pour les bases de données de cache.
608 Élément de configuration
:
<literal>APT::FTPArchive::ReadOnlyDB
</literal>.
616 <refsect1><title>Voir aussi
</title>
621 <refsect1><title>Diagnostics
</title>
623 <command>apt-ftparchive
</command> retourne zéro si tout se passe bien, le nombre
624 décimal
100 en cas d'erreur.