1 <!-- -*- mode: sgml; mode: fold -*- -->
2 <!-- translation of version 1.5 -->
3 <!doctype refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
5 <!ENTITY % aptent SYSTEM "apt.ent.fr">
14 <refentrytitle>apt-ftparchive</>
18 <!-- Man page title -->
20 <refname>apt-ftparchive</>
21 <refpurpose>Un outil pour créer des index
27 <command>apt-ftparchive</>
28 <arg><option>-hvdsq</></arg>
29 <arg><option>--md5</></arg>
30 <arg><option>--delink</></arg>
31 <arg><option>--readonly</></arg>
32 <arg><option>--contents</></arg>
33 <arg><option>-o=<replaceable/option de configuration/</></arg>
34 <arg><option>-c=<replaceable/fichier/</></arg>
36 <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>
37 <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>
38 <arg>contents <arg choice="plain"><replaceable>chemin</replaceable></arg></arg>
39 <arg>generate <arg choice="plain"><replaceable>fichier-de-configuration</replaceable></arg> <arg choice="plain" rep="repeat"><replaceable>section</replaceable></arg></arg>
40 <arg>clean <arg choice="plain"><replaceable>fichier-de-configuration</replaceable></arg></arg>
45 <RefSect1><Title>Description</>
47 <command/apt-ftparchive/ est l'outil en ligne de commande qui crée les index
48 dont APT se sert pour accéder aux sources des distributions. Un index doit
49 être créé pour un site et basé sur le contenu de ce site.
52 <command/apt-ftparchive/ est un ensemble comprenant le programme
53 &dpkg-scanpackages; et toutes ses fonctionnalités via la commande
54 <literal/directory/ ; il comprend aussi un générateur de fichier
55 « Contents », la commande <literal/contents/, et une technique
56 élaborée pour « scripter » le processus de création d'une archive
60 <command/apt-ftparchive/ peut utiliser lui-même des bases de données binaires
61 pour « cacher » le contenu d'un fichier .deb ; il n'a pas
62 besoin de programmes extérieurs, sauf &gzip;. Lors d'une exécution, il
63 vérifie les changements dans les fichiers et crée les fichiers compressés
67 À moins que l'option <option/-h/ ou <option/--help/ ne soit donnée, l'une des
68 commandes suivantes doit être présente :
71 <VarListEntry><term>packages</term>
73 La commande <literal/packages/ crée un fichier « Packages » à partir d'une
74 arborescence. Elle recherche récursivement à travers le répertoire donné
75 les fichiers .deb et, pour chaque fichier trouvé, envoie une entrée pour ce
76 paquet sur la sortie standard. Cette commande est approximativement
77 équivalente à &dpkg-scanpackages;.
79 On peut se servir de l'option <option/--db/ pour demander un cache binaire.
82 <VarListEntry><term>sources</term>
84 La commande <literal/sources/ crée un index des sources à partir d'une
85 arborescence. Elle recherche récursivement à travers le répertoire donné
86 les fichiers .dsc et, pour chaque fichier trouvé, envoie une entrée pour ce
87 paquet sur la sortie standard. Cette commande est approximativement
88 équivalente à &dpkg-scansources;.
90 Quand on précise un fichier « override », c'est un fichier source
91 avec une extension .src qui est recherché. On peut se servir de l'option
92 <option/--source-override/ pour changer de fichier source d'« override ».
95 <VarListEntry><term>contents</term>
97 La commande <literal/contents/ crée un fichier « Contents » à partir d'une
98 arborescence. Elle recherche récursivement à travers le répertoire donné
99 les fichiers .deb et, pour chaque fichier trouvé, lit la liste des
100 fichiers. Elle trie la liste des fichiers correspondant à des paquets et
101 l'envoie sur la sortie standard. Les répertoires ne font pas partie du
102 résultat. Quand un fichier appartient à plusieurs paquets, une virgule
105 On peut se servir de l'option <option/--db/ pour demander un cache binaire.
108 <VarListEntry><term>generate</term>
110 La commande <literal/generate/ est conçue pour être exécutable par le
111 programme cron et elle crée un index en suivant le fichier de configuration
112 donné. Le langage de configuration fournit un moyen souple de préciser
113 index et répertoires aussi bien que les paramètres requis.
116 <VarListEntry><term>clean</term>
118 La commande <literal/clean/ range les bases de données utilisées par le
119 fichier de configuration en supprimant les enregistrements qui ne sont
126 <RefSect1><Title>Configuration de la commande generate</>
128 La commande <literal/generate/ utilise un fichier de configuration pour
129 décrire l'archive qui va être créée. Le format de ce fichier est le format
130 ISC classique utilisé par des outils ISC comme bind 8 et dhcpd. &apt-conf;
131 décrit ce format. Il faut noter que l'analyse de ce fichier se fait
132 par section tandis que celle d'&apt-conf; se fait par arborescence. Cela
133 n'affecte que l'usage de l'étiquette de visée (scope tag).
136 Ce fichier de configuration possède quatre sections, décrites ci-dessous.
138 <refsect2><title>La section Dir</>
140 La section <literal/Dir/ définit les répertoires standards où situer les
141 fichiers nécessaires au processus de création. Ces répertoires sont
142 précédés de chemins relatifs définis dans les sections suivantes de manière
143 à produire un chemin absolu et complet.
145 <VarListEntry><term>ArchiveDir</term>
147 Indique la racine de l'archive FTP ; Pour une configuration Debian
149 c'est le répertoire qui contient le fichier <filename/ls-LR/, et les noeuds
153 <VarListEntry><term>OverrideDir</term>
155 Indique l'emplacement des fichiers d'« override ».
158 <VarListEntry><term>CacheDir</term>
160 Indique l'emplacement des fichiers de cache.
163 <VarListEntry><term>FileListDir</term>
165 Indique l'emplacement des fichiers contenant la liste des fichiers (si on se
166 sert de la valeur <literal/FileList/ définie plus bas).
171 <refsect2><title>La section Default</>
173 La section <literal/Default/ précise les valeurs par défaut et les paramètres
174 qui contrôlent la marche du générateur. Ces valeurs peuvent être annulées dans
175 d'autres sections (paramètrage par section).
177 <VarListEntry><term>Packages::Compress</term>
179 Indique comment sont compressés les fichiers d'index. C'est une chaîne qui
180 contient des valeurs séparées par des espaces ; elle contient au moins
181 l'une des valeurs suivantes : « . » (pas de compression),
182 « gzip », « bzip2 ».
183 Par défaut, c'est la chaîne « . gzip ».
186 <VarListEntry><term>Packages::Extensions</term>
188 Indique la liste par défaut des extensions de fichier qui constituent des
189 paquets. Par défaut, c'est « .deb ».
192 <VarListEntry><term>Sources::Compress</term>
194 Identique à <literal/Packages::Compress/ mais précise comment sont compressés
195 les fichiers sources.
198 <VarListEntry><term>Sources::Extensions</term>
200 Indique la liste par défaut des extensions de fichier qui constituent des
201 fichiers sources. Par défaut, c'est « .dsc ».
204 <VarListEntry><term>Contents::Compress</term>
206 Identique à <literal/Packages::Compress/ mais précise comment sont compressés
207 les fichiers « Contents ».
210 <VarListEntry><term>DeLinkLimit</term>
212 Indique le nombre de kilooctets à délier (et à remplacer par des liens en dur)
213 pour chaque exécution. On s'en sert, pour chaque section, avec le paramètre
214 <literal/External-Links/.
217 <VarListEntry><term>FileMode</term>
219 Indique le système de permissions des fichiers d'index créés. Par défaut,
220 c'est le mode 0644. Tous les fichiers d'index ont ce mode et le masque
221 utilisateur (umasq) est ignoré.
226 <refsect2><title>La section TreeDefault</>
228 On indique les valeurs par défaut particulières à la section
229 « Tree ». Toutes ces variables sont des variables de
230 substitution ; les chaînes $(DIST),
231 $(SECTION) et $(ARCH) sont remplacées par leur valeur respective.
234 <VarListEntry><term>MaxContentsChange</term>
236 Indique le nombre de kilooctets de fichiers « Contents » qui sont
237 créés chaque jour. Les fichiers « Contents » sont tirés au sort
238 selon le système <emphasis>round-robin</emphasis> de manière que, sur
239 plusieurs jours, tous soient reconstruits.
242 <VarListEntry><term>ContentsAge</term>
244 Contrôle le nombre de jours pendant lequel un fichier « Contents »
245 peut être utilisé sans actualisation. Quand cette limite est franchie,
246 le « mtime » du fichier « Contents » est mis à jour. Cela
247 peut arriver quand un fichier est modifié sans que cela modifie le fichier
248 « Contents » (modification par « override » par exemple).
249 Un délai est permis dans l'espoir que de nouveaux « .deb » seront
250 installés, exigeant un nouveau « Contents ». Par
251 défaut ce nombre vaut 10, l'unité étant le jour.
254 <VarListEntry><term>Directory</term>
256 Indique la racine de l'arborescence des « .deb ». Par défaut, c'est
257 <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/</>.
260 <VarListEntry><term>Packages</term>
262 Indique le fichier « Packages » créé. Par défaut, c'est
263 <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/Packages</>.
266 <VarListEntry><term>Sources</term>
268 Indique le fichier « Packages » crée. Par défaut, c'est
269 <filename>$(DIST)/$(SECTION)/source/Sources</>.
272 <VarListEntry><term>InternalPrefix</term>
274 Indique un préfixe de chemin ; ce préfixe fait qu'un lien symbolique sera
275 considéré comme un lien interne plutôt que comme un lien externe. Par défaut,
276 c'est <filename>$(DIST)/$(SECTION)/</>.
279 <VarListEntry><term>Contents</term>
281 Indique le fichier « Contents » créé. Par défaut, c'est
282 <filename>$(DIST)/Contents-$(ARCH)</>. Quand le paramètrage fait que
283 différents fichiers « Packages » se réfèrent à un seul fichier
284 « Contents », <command/apt-ftparchive/ les intègre automatiquement.
287 <VarListEntry><term>Contents::Header</term>
289 Indique l'en-tête à préfixer au fichier « Contents » créé.
292 <VarListEntry><term>BinCacheDB</term>
294 Indique la base de données binaire servant de cache pour cette section.
295 Différentes sections peuvent partager cette base de données.
298 <VarListEntry><term>FileList</term>
300 Indique qu'au lieu de lire l'arborescence, <command/apt-ftparchive/ doit lire
301 la liste de fichiers dans le fichier donné en argument. Les noms relatifs
302 sont préfixés par le répertoire de l'archive.
305 <VarListEntry><term>SourceFileList</term>
307 Indique qu'au lieu de lire l'arborescence, <command/apt-ftparchive/ doit lire
308 la liste de fichiers dans le fichier donné en argument. Les noms relatifs
309 sont préfixés par le répertoire de l'archive. On s'en sert pour traiter les
315 <refsect2><title>La section Tree</>
317 La section <literal/Tree/ définit une arborescence debian classique avec
318 un répertoire de base, différentes sections dans ce répertoire et
319 différentes architectures dans chaque section. Le chemin exact est défini
320 par la variable de substitution <literal/Directory/.
322 La section <literal/Tree/ accepte une étiquette de visée (scope tag) qui
323 détermine la variable <literal/$(DIST)/ et la racine de l'arborescence
324 (le chemin est préfixé par <literal/ArchiveDir/). C'est par exemple :
325 <filename>dists/woody</>.
327 Tous les paramètres définis dans la section <literal/TreeDefault/ peuvent
328 s'utiliser dans la section <literal/Tree/ ainsi que les trois nouvelles
331 Quand il exécute la section <literal/Tree/, <command/apt-ftparchive/
333 <informalexample><programlisting>
335 for j in Architectures do
336 Generate for DIST=scope SECTION=i ARCH=j
337 </programlisting></informalexample>
340 <VarListEntry><term>Sections</term>
342 C'est une liste de sections séparées par des espaces qui appartiennent à une
343 distribution ; classiquement, on trouve <literal/main contrib non-free/.
346 <VarListEntry><term>Architectures</term>
348 C'est une liste de toutes les architectures qui appartiennent à chaque
349 section. L'architecture spéciale « source » indique que
350 l'arborescence est une arborescence de sources.
353 <VarListEntry><term>BinOverride</term>
355 Indique le fichier binaire d'« override ». le fichier d'« override » contient
356 des informations sur la section, la priorité et le responsable de paquet.
359 <VarListEntry><term>SrcOverride</term>
361 Indique le fichier source d'« override ». Le fichier
362 d'« override » contient des informations sur la section.
365 <VarListEntry><term>ExtraOverride</term>
367 Indique le fichier supplémentaire d'« override » pour les binaires.
370 <VarListEntry><term>SrcExtraOverride</term>
372 Indique le fichier supplémentaire d'« override » pour les sources.
378 <refsect2><title>La section BinDirectory</>
380 La section <literal/bindirectory/ définit une arborescence binaire sans
381 structure particulière. L'étiquette de visée (scope tag) indique l'emplacement
382 du répertoire binaire et le paramètrage est identique à celui pour la
383 section <literal/Tree/ sans substitution de variables ou au paramètrage de
384 <literal>Section</><literal>Architecture</>.
386 <VarListEntry><term>Packages</term>
388 Indique le fichier « Packages » créé.
391 <VarListEntry><term>SrcPackages</term>
393 Indique le fichier « Sources » créé. L'un des deux fichiers,
394 <literal/Packages/ ou <literal/SrcPackages/ est nécessaire.
397 <VarListEntry><term>Contents</term>
399 Indique le fichier « Contents » créé.
402 <VarListEntry><term>Binoverride</term>
404 Indique le fichier d'« override » pour les binaires.
407 <VarListEntry><term>SrcOverride</term>
409 Indique le fichier d'« override » pour les sources.
411 <VarListEntry><term>ExtraOverride</term>
413 Indique le fichier supplémentaire d'« override » pour les binaires.
416 <VarListEntry><term>SrcExtraOverride</term>
418 Indique le fichier supplémentaire d'« override » pour les sources.
421 <VarListEntry><term>BinCacheDB</term>
423 Indique une base de données cache.
426 <VarListEntry><term>PathPrefix</term>
428 Ajoute un chemin à tous les chemins créés.
431 <VarListEntry><term>FileList, SourceFileList</term>
433 Indique le fichier contenant la liste des fichiers.
439 <RefSect1><Title>Le fichier d'« Override » pour les binaires.</>
441 Le fichier d'« Override » est pleinement compatible avec
442 &dpkg-scanpackages;. Il contient quatre champs séparés par des espaces. Le
443 premier est le nom du paquet ; le deuxième est la priorité à donner à ce
444 paquet ; le troisième est sa section et le dernier champ est un champ
445 pour changer le nom du responsable de paquet.
447 Le champ du responsable est de cette forme :
448 <literallayout>old [// oldn]* => new</literallayout>
450 <literallayout>new</literallayout>
451 La première forme permet de spécifier de vieilles adresses dans une liste (le
452 séparateur est la double barre oblique). Si l'une de ces deux formes est
453 rencontrée, la valeur de new remplace la valeur du champ. La deuxième forme
454 remplace inconditionnellement le champ.
457 <RefSect1><title>Le fichier d'« Override » pour les sources</>
459 Le fichier d'« Override » est pleinement compatible avec
460 &dpkg-scansources;. Il contient deux champs. Le premier est le nom du paquet
461 source ; le second, sa section.
464 <RefSect1><title>Le fichier supplémentaire d'« Override »</>
466 Le fichier supplémentaire d'« Override » permet d'ajouter ou de
467 remplacer des étiquettes sur la sortie. Il possède trois colonnes :
468 la première représente le paquet, la seconde est une étiquette et la
469 troisième en fin de ligne est la nouvelle valeur.
472 <RefSect1><Title>Les options</>
476 <VarListEntry><term><option/--md5/</>
478 Créer la somme de contrôle MD5. Cette option est activée par défaut. Quand
479 elle est désactivée, les fichiers d'index n'ont pas les champs MD5Sum là où
481 Élément de configuration : <literal/APT::FTPArchive::MD5/.
484 <VarListEntry><term><option/-d/</><term><option/--db/</>
486 Utiliser une base de données binaire pour cache. Cela n'a aucun effet sur la
488 Élément de configuration : <literal/APT::FTPArchive::DB/.
491 <VarListEntry><term><option/-q/</><term><option/--quiet/</>
493 Mode silencieux ; cette commande produit une sortie destinée à
494 l'enregistrement dans un fichier-journal en omettant les indicateurs de
495 progression. Un plus grand nombre de « q » (2 au plus) produit un
497 On peut aussi utiliser <option/-q=#/ pour positionner le niveau de silence,
498 et annuler le fichier de configuration.
499 Élément de configuration : <literal/quiet/.
502 <VarListEntry><term><option/--delink/</>
504 Faire une déliaison. Si <literal/External-Links/ est activé, cette option
505 permet réellement la déliaison des fichiers. Par défaut, elle est activée mais
506 elle peut être désactivée avec l'option <option/--no-delink/.
507 Élément de configuration : <literal/APT::FTPArchive::DeLinkAct/.
510 <VarListEntry><term><option/--contents/</>
512 Permettre la création d'un fichier « Contents ». Quand cette option
513 est activée et que les index sont créés sous forme de base de données binaire,
514 la liste des fichiers est aussi extraite et conservée dans la base de données
515 pour un usage futur. Avec la commande generate, cette option permet la
516 création de fichiers « Contents ». Par défaut, elle est activée.
517 Élément de configuration : <literal/APT::FTPArchive::Contents/.
520 <VarListEntry><term><option/-s/</><term><option/--source-override/</>
522 Indique le fichier d'« override » à utiliser avec la commande
524 Élément de configuration : <literal/APT::FTPArchive::SourceOverride/.
527 <VarListEntry><term><option/--readonly/</>
529 N'autoriser que la lecture pour les bases de données de cache.
530 Élément de configuration : <literal/APT::FTPArchive::ReadOnlyDB/.
538 <RefSect1><Title>Voir aussi</>
543 <RefSect1><Title>Diagnostics</>
545 <command/apt-ftparchive/ retourne zéro si tout se passe bien, le nombre
546 décimal 100 en cas d'erreur.