<!-- -*- mode: sgml; mode: fold -*- -->
<!-- translation of version 1.5 -->
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [

<!ENTITY % aptent SYSTEM "apt.ent.fr">
%aptent;

]>

<refentry lang=fr>
 &apt-docinfo;
 
 <refmeta>
   <refentrytitle>apt-ftparchive</>
   <manvolnum>1</>
 </refmeta>
 
 <!-- Man page title -->
 <refnamediv>
    <refname>apt-ftparchive</>
    <refpurpose>Un outil pour créer des index
 </refnamediv>

 <!-- Arguments -->
 <refsynopsisdiv>
   <cmdsynopsis>
      <command>apt-ftparchive</>
      <arg><option>-hvdsq</></arg>
      <arg><option>--md5</></arg>
      <arg><option>--delink</></arg>
      <arg><option>--readonly</></arg>
      <arg><option>--contents</></arg>
      <arg><option>-o=<replaceable/option de configuration/</></arg>
      <arg><option>-c=<replaceable/fichier/</></arg>      
      <group choice=req>
         <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>
         <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>
         <arg>contents <arg choice="plain"><replaceable>chemin</replaceable></arg></arg>
         <arg>generate <arg choice="plain"><replaceable>fichier-de-configuration</replaceable></arg> <arg choice="plain" rep="repeat"><replaceable>section</replaceable></arg></arg>
         <arg>clean <arg choice="plain"><replaceable>fichier-de-configuration</replaceable></arg></arg>
      </group>
   </cmdsynopsis>
 </refsynopsisdiv>
 
 <RefSect1><Title>Description</>
   <para>   
<command/apt-ftparchive/ est l'outil en ligne de commande qui crée les index
dont APT se sert pour accéder aux sources des distributions. Un index doit
être créé pour un site et basé sur le contenu de ce site.

   <para>
<command/apt-ftparchive/ est un ensemble comprenant le programme 
&dpkg-scanpackages; et toutes ses fonctionnalités via la commande
<literal/directory/&nbsp;; il comprend aussi un générateur de fichier 
«&nbsp;Contents&nbsp;», la commande <literal/contents/, et une technique 
élaborée pour «&nbsp;scripter&nbsp;» le processus de création d'une archive 
complète.

   <para>
<command/apt-ftparchive/ peut utiliser lui-même des bases de données binaires
pour «&nbsp;cacher&nbsp;» le contenu d'un fichier .deb&nbsp;; il n'a pas 
besoin de programmes extérieurs, sauf &gzip;. Lors d'une exécution, il 
vérifie les changements dans les fichiers et crée les fichiers compressés 
voulus.
   
   <para>
À moins que l'option <option/-h/ ou <option/--help/ ne soit donnée, l'une des
commandes suivantes doit être présente&nbsp;:
   
   <VariableList>
     <VarListEntry><term>packages</term>
     <ListItem><Para>
La commande <literal/packages/ crée un fichier «&nbsp;Packages&nbsp;» à partir d'une 
arborescence. Elle recherche récursivement à travers le répertoire donné
les fichiers .deb et, pour chaque fichier trouvé, envoie une entrée pour ce
paquet sur la sortie standard. Cette commande est approximativement
équivalente à &dpkg-scanpackages;.
     <para>
On peut se servir de l'option <option/--db/ pour demander un cache binaire.
     </VarListEntry>
     
     <VarListEntry><term>sources</term>
     <ListItem><Para>
La commande <literal/sources/ crée un index des sources à partir d'une
arborescence. Elle recherche récursivement à travers le répertoire donné
les fichiers .dsc et, pour chaque fichier trouvé, envoie une entrée pour ce
paquet sur la sortie standard. Cette commande est approximativement
équivalente à &dpkg-scansources;.
     <para>
Quand on précise un fichier «&nbsp;override&nbsp;», c'est un fichier source 
avec une extension .src qui est recherché. On peut se servir de l'option
<option/--source-override/ pour changer de fichier source d'«&nbsp;override&nbsp;».
     </VarListEntry>

     <VarListEntry><term>contents</term>
     <ListItem><Para>
La commande <literal/contents/ crée un fichier «&nbsp;Contents&nbsp;» à partir d'une
arborescence. Elle recherche récursivement à travers le répertoire donné
les fichiers .deb et, pour chaque fichier trouvé, lit la liste des 
fichiers. Elle trie la liste des fichiers correspondant à des paquets et 
l'envoie sur la sortie standard. Les répertoires ne font pas partie du
résultat. Quand un fichier appartient à plusieurs paquets, une virgule
sépare les paquets.
     <para>
On peut se servir de l'option <option/--db/ pour demander un cache binaire.
     </VarListEntry>

     <VarListEntry><term>generate</term>
     <ListItem><Para>
La commande <literal/generate/ est conçue pour être exécutable par le
programme cron et elle crée un index en suivant le fichier de configuration
donné. Le langage de configuration fournit un moyen souple de préciser
index et répertoires aussi bien que les paramètres requis.
     </VarListEntry>

     <VarListEntry><term>clean</term>
     <ListItem><Para>
La commande <literal/clean/ range les bases de données utilisées par le
fichier de configuration en supprimant les enregistrements qui ne sont
plus nécessaires.
     </VarListEntry>     
   </VariableList>  
   
 </RefSect1>

 <RefSect1><Title>Configuration de la commande generate</>
   <para>
La commande <literal/generate/ utilise un fichier de configuration pour
décrire l'archive qui va être créée. Le format de ce fichier est le format
ISC classique utilisé par des outils ISC comme bind 8 et dhcpd. &apt-conf;
décrit ce format. Il faut noter que l'analyse de ce fichier se fait
par section tandis que celle d'&apt-conf; se fait par arborescence. Cela
n'affecte que l'usage de l'étiquette de visée (scope tag).

   <para>
Ce fichier de configuration possède quatre sections, décrites ci-dessous.

   <refsect2><title>La section Dir</>
     <Para>
La section <literal/Dir/ définit les répertoires standards où situer les
fichiers nécessaires au processus de création. Ces répertoires sont
précédés de chemins relatifs définis dans les sections suivantes de manière
à produire un chemin absolu et complet.
     <VariableList>     
      <VarListEntry><term>ArchiveDir</term>
      <ListItem><Para>
Indique la racine de l'archive FTP&nbsp;; Pour une configuration Debian 
classique, 
c'est le répertoire qui contient le fichier <filename/ls-LR/, et les noeuds 
des distributions.
      </VarListEntry>

      <VarListEntry><term>OverrideDir</term>
      <ListItem><Para>
Indique l'emplacement des fichiers d'«&nbsp;override&nbsp;».
      </VarListEntry>
      
      <VarListEntry><term>CacheDir</term>
      <ListItem><Para>
Indique l'emplacement des fichiers de cache.
      </VarListEntry>
      
      <VarListEntry><term>FileListDir</term>
      <ListItem><Para>
Indique l'emplacement des fichiers contenant la liste des fichiers (si on se 
sert de la valeur <literal/FileList/ définie plus bas).
      </VarListEntry>
     </VariableList>
   </refsect2>
   
   <refsect2><title>La section Default</>
     <para>
La section <literal/Default/ précise les valeurs par défaut et les paramètres
qui contrôlent la marche du générateur. Ces valeurs peuvent être annulées dans
d'autres sections (paramètrage par section).
     <VariableList>     
      <VarListEntry><term>Packages::Compress</term>
      <ListItem><Para>
Indique comment sont compressés les fichiers d'index. C'est une chaîne qui
contient des valeurs séparées par des espaces&nbsp;; elle contient au moins 
l'une des valeurs suivantes&nbsp;: «&nbsp;.&nbsp;» (pas de compression), 
«&nbsp;gzip&nbsp;», «&nbsp;bzip2&nbsp;».
Par défaut, c'est la chaîne «&nbsp;. gzip&nbsp;».
      </VarListEntry>

      <VarListEntry><term>Packages::Extensions</term>
      <ListItem><Para>
Indique la liste par défaut des extensions de fichier qui constituent des
paquets. Par défaut, c'est «&nbsp;.deb&nbsp;».
      </VarListEntry>
      
      <VarListEntry><term>Sources::Compress</term>
      <ListItem><Para>
Identique à <literal/Packages::Compress/ mais précise comment sont compressés
les fichiers sources.
      </VarListEntry>
      
      <VarListEntry><term>Sources::Extensions</term>
      <ListItem><Para>
Indique la liste par défaut des extensions de fichier qui constituent des
fichiers sources. Par défaut, c'est «&nbsp;.dsc&nbsp;».
      </VarListEntry>
      
      <VarListEntry><term>Contents::Compress</term>
      <ListItem><Para>
Identique à <literal/Packages::Compress/ mais précise comment sont compressés
les fichiers «&nbsp;Contents&nbsp;».
      </VarListEntry>
      
      <VarListEntry><term>DeLinkLimit</term>
      <ListItem><Para>
Indique le nombre de kilooctets à délier (et à remplacer par des liens en dur)
pour chaque exécution. On s'en sert, pour chaque section, avec le paramètre  
<literal/External-Links/.
      </VarListEntry>
      
      <VarListEntry><term>FileMode</term>
      <ListItem><Para>
Indique le système de permissions des fichiers d'index créés. Par défaut, 
c'est le mode 0644. Tous les fichiers d'index ont ce mode et le masque 
utilisateur (umasq) est ignoré.
      </VarListEntry>
     </VariableList>
   </refsect2>
   
   <refsect2><title>La section TreeDefault</>
     <para>
On indique les valeurs par défaut particulières à la section 
«&nbsp;Tree&nbsp;». Toutes ces variables sont des variables de 
substitution&nbsp;; les chaînes $(DIST),
$(SECTION) et $(ARCH) sont remplacées par leur valeur respective.
     
     <VariableList>     
      <VarListEntry><term>MaxContentsChange</term>
      <ListItem><Para>
Indique le nombre de kilooctets de fichiers «&nbsp;Contents&nbsp;» qui sont 
créés chaque jour. Les fichiers «&nbsp;Contents&nbsp;» sont tirés au sort 
selon le système <emphasis>round-robin</emphasis> de manière que, sur 
plusieurs jours, tous soient reconstruits.
      </VarListEntry>
      
      <VarListEntry><term>ContentsAge</term>
      <ListItem><Para>
Contrôle le nombre de jours pendant lequel un fichier «&nbsp;Contents&nbsp;» 
peut être utilisé sans actualisation. Quand cette limite est franchie, 
le «&nbsp;mtime&nbsp;» du fichier «&nbsp;Contents&nbsp;» est mis à jour. Cela 
peut arriver quand un fichier est modifié sans que cela modifie le fichier 
«&nbsp;Contents&nbsp;» (modification par «&nbsp;override&nbsp;» par exemple). 
Un délai est permis dans l'espoir que de nouveaux «&nbsp;.deb&nbsp;» seront 
installés, exigeant un nouveau «&nbsp;Contents&nbsp;». Par
défaut ce nombre vaut 10, l'unité étant le jour.
      </VarListEntry>
      
      <VarListEntry><term>Directory</term>
      <ListItem><Para>
Indique la racine de l'arborescence des «&nbsp;.deb&nbsp;». Par défaut, c'est
<filename>$(DIST)/$(SECTION)/binary-$(ARCH)/</>.
      </VarListEntry>
      
      <VarListEntry><term>Packages</term>
      <ListItem><Para>
Indique le fichier «&nbsp;Packages&nbsp;» créé. Par défaut, c'est
<filename>$(DIST)/$(SECTION)/binary-$(ARCH)/Packages</>.
      </VarListEntry>
      
      <VarListEntry><term>Sources</term>
      <ListItem><Para>
Indique le fichier «&nbsp;Packages&nbsp;» crée. Par défaut, c'est
<filename>$(DIST)/$(SECTION)/source/Sources</>.
      </VarListEntry>
      
      <VarListEntry><term>InternalPrefix</term>
      <ListItem><Para>
Indique un préfixe de chemin&nbsp;; ce préfixe fait qu'un lien symbolique sera 
considéré comme un lien interne plutôt que comme un lien externe. Par défaut, 
c'est <filename>$(DIST)/$(SECTION)/</>.
      </VarListEntry>
      
      <VarListEntry><term>Contents</term>
      <ListItem><Para>
Indique le fichier «&nbsp;Contents&nbsp;» créé. Par défaut, c'est
<filename>$(DIST)/Contents-$(ARCH)</>. Quand le paramètrage fait que  
différents fichiers «&nbsp;Packages&nbsp;» se réfèrent à un seul fichier 
«&nbsp;Contents&nbsp;», <command/apt-ftparchive/ les intègre automatiquement.
      </VarListEntry>
      
      <VarListEntry><term>Contents::Header</term>
      <ListItem><Para>
Indique l'en-tête à préfixer au fichier «&nbsp;Contents&nbsp;» créé.
      </VarListEntry>

      <VarListEntry><term>BinCacheDB</term>
      <ListItem><Para>
Indique la base de données binaire servant de cache pour cette section. 
Différentes sections peuvent partager cette base de données.
      </VarListEntry>
      
      <VarListEntry><term>FileList</term>
      <ListItem><Para>
Indique qu'au lieu de lire l'arborescence, <command/apt-ftparchive/ doit lire
la liste de fichiers dans le fichier donné en argument. Les noms relatifs
sont préfixés par le répertoire de l'archive.
      </VarListEntry>
      
      <VarListEntry><term>SourceFileList</term>
      <ListItem><Para>
Indique qu'au lieu de lire l'arborescence, <command/apt-ftparchive/ doit lire
la liste de fichiers dans le fichier donné en argument. Les noms relatifs
sont préfixés par le répertoire de l'archive. On s'en sert pour traiter les
index de sources.
      </VarListEntry>
     </VariableList>     
   </refsect2>
   
   <refsect2><title>La section Tree</>
     <para>
La section <literal/Tree/ définit une arborescence debian classique avec
un répertoire de base, différentes sections dans ce répertoire et 
différentes architectures dans chaque section. Le chemin exact est défini
par la variable de substitution <literal/Directory/.
     <para>
La section <literal/Tree/ accepte une étiquette de visée (scope tag) qui
détermine la variable <literal/$(DIST)/ et la racine de l'arborescence 
(le chemin est préfixé par <literal/ArchiveDir/). C'est par exemple&nbsp;:
<filename>dists/woody</>.
     <para>
Tous les paramètres définis dans la section <literal/TreeDefault/ peuvent 
s'utiliser dans la section <literal/Tree/ ainsi que les trois nouvelles
variables suivantes.
     <para>
Quand il exécute la section <literal/Tree/, <command/apt-ftparchive/ 
agit ainsi&nbsp;:
<informalexample><programlisting>
for i in Sections do 
   for j in Architectures do
      Generate for DIST=scope SECTION=i ARCH=j
</programlisting></informalexample>

     <VariableList>     
      <VarListEntry><term>Sections</term>
      <ListItem><Para>
C'est une liste de sections séparées par des espaces qui appartiennent à une
distribution&thinsp;; classiquement, on trouve <literal/main contrib non-free/.
      </VarListEntry>
      
      <VarListEntry><term>Architectures</term>
      <ListItem><Para>
C'est une liste de toutes les architectures qui appartiennent à chaque
section. L'architecture spéciale «&nbsp;source&nbsp;» indique que 
l'arborescence est une arborescence de sources.
      </VarListEntry>
      
      <VarListEntry><term>BinOverride</term>
      <ListItem><Para>
Indique le fichier binaire d'«&nbsp;override&nbsp;». le fichier d'«&nbsp;override&nbsp;» contient
des informations sur la section, la priorité et le responsable de paquet.
      </VarListEntry>
      
      <VarListEntry><term>SrcOverride</term>
      <ListItem><Para>
Indique le fichier source d'«&nbsp;override&nbsp;». Le fichier 
d'«&nbsp;override&nbsp;» contient des informations sur la section.
      </VarListEntry>

      <VarListEntry><term>ExtraOverride</term>
      <ListItem><Para>
Indique le fichier supplémentaire d'«&nbsp;override&nbsp;» pour les binaires.
      </VarListEntry>

      <VarListEntry><term>SrcExtraOverride</term>
      <ListItem><Para>
 Indique le fichier supplémentaire d'«&nbsp;override&nbsp;» pour les sources.
      </VarListEntry>

     </VariableList>
   </refsect2>
   
   <refsect2><title>La section BinDirectory</>
     <para>
La section <literal/bindirectory/ définit une arborescence binaire sans 
structure particulière. L'étiquette de visée (scope tag) indique l'emplacement
du répertoire binaire et le paramètrage est identique à celui pour la
section <literal/Tree/ sans substitution de variables ou au paramètrage de
<literal>Section</><literal>Architecture</>.
     <VariableList>
      <VarListEntry><term>Packages</term>
      <ListItem><Para>
Indique le fichier «&nbsp;Packages&nbsp;» créé.
      </VarListEntry>
      
      <VarListEntry><term>SrcPackages</term>
      <ListItem><Para>
Indique le fichier «&nbsp;Sources&nbsp;» créé. L'un des deux fichiers, 
<literal/Packages/ ou <literal/SrcPackages/ est nécessaire.
      </VarListEntry>
      
      <VarListEntry><term>Contents</term>
      <ListItem><Para>
Indique le fichier «&nbsp;Contents&nbsp;» créé.
      </VarListEntry>
      
      <VarListEntry><term>Binoverride</term>
      <ListItem><Para>
Indique le fichier d'«&nbsp;override&nbsp;» pour les binaires.
      </VarListEntry>
      
      <VarListEntry><term>SrcOverride</term>
      <ListItem><Para>
Indique le fichier d'«&nbsp;override&nbsp;» pour les sources.
      </VarListEntry>
      <VarListEntry><term>ExtraOverride</term>
      <ListItem><Para>
Indique le fichier supplémentaire d'«&nbsp;override&nbsp;» pour les binaires.
      </VarListEntry>

      <VarListEntry><term>SrcExtraOverride</term>
      <ListItem><Para>
Indique le fichier supplémentaire d'«&nbsp;override&nbsp;» pour les sources.
      </VarListEntry>
      
      <VarListEntry><term>BinCacheDB</term>
      <ListItem><Para>
Indique une base de données cache.
      </VarListEntry>
      
      <VarListEntry><term>PathPrefix</term>
      <ListItem><Para>
Ajoute un chemin à tous les chemins créés.
      </VarListEntry>
      
      <VarListEntry><term>FileList, SourceFileList</term>
      <ListItem><Para>
Indique le fichier contenant la liste des fichiers.
      </VarListEntry>
     </VariableList>
   </refsect2>
 </RefSect1>

 <RefSect1><Title>Le fichier d'«&nbsp;Override&nbsp;» pour les binaires.</>
   <para>
Le fichier d'«&nbsp;Override&nbsp;» est pleinement compatible avec
&dpkg-scanpackages;. Il contient quatre champs séparés par des espaces. Le 
premier est le nom du paquet&nbsp;; le deuxième est la priorité à donner à ce 
paquet&nbsp;; le troisième est sa section et le dernier champ est un champ 
pour changer le nom du responsable de paquet.
   <para>
Le champ du responsable est de cette forme&nbsp;:
   <literallayout>old [// oldn]* => new</literallayout>
   ou simplement,
   <literallayout>new</literallayout>
La première forme permet de spécifier de vieilles adresses dans une liste (le
séparateur est la double barre oblique). Si l'une de ces deux formes est
rencontrée, la valeur de new remplace la valeur du champ. La deuxième forme
remplace inconditionnellement le champ.
 </RefSect1>
 
 <RefSect1><title>Le fichier d'«&nbsp;Override&nbsp;» pour les sources</>
   <para>
Le fichier d'«&nbsp;Override&nbsp;» est pleinement compatible avec 
&dpkg-scansources;. Il contient deux champs. Le premier est le nom du paquet
source&nbsp;; le second, sa section.
 </RefSect1>   

 <RefSect1><title>Le fichier supplémentaire d'«&nbsp;Override&nbsp;»</>
   <para>
Le fichier supplémentaire d'«&nbsp;Override&nbsp;» permet d'ajouter ou de
remplacer des étiquettes sur la sortie. Il possède trois colonnes&nbsp;:
la première représente le paquet, la seconde est une étiquette et la
troisième en fin de ligne est la nouvelle valeur.
 </RefSect1>

 <RefSect1><Title>Les options</>
   &apt-cmdblurb;
   
   <VariableList>
     <VarListEntry><term><option/--md5/</>
     <ListItem><Para>
Créer la somme de contrôle MD5. Cette option est activée par défaut. Quand 
elle est désactivée, les fichiers d'index n'ont pas les champs MD5Sum là où
c'est possible.
Élément de configuration&nbsp;: <literal/APT::FTPArchive::MD5/.
     </VarListEntry>

     <VarListEntry><term><option/-d/</><term><option/--db/</>
     <ListItem><Para>
Utiliser une base de données binaire pour cache. Cela n'a aucun effet sur la
commande generate.
Élément de configuration&nbsp;: <literal/APT::FTPArchive::DB/.
     </VarListEntry>

     <VarListEntry><term><option/-q/</><term><option/--quiet/</>
     <ListItem><Para>
Mode silencieux&nbsp;; cette commande produit une sortie destinée à 
l'enregistrement dans un fichier-journal en omettant les indicateurs de 
progression. Un plus grand nombre de «&nbsp;q&nbsp;» (2 au plus) produit un 
plus grand silence.
On peut aussi utiliser <option/-q=#/ pour positionner le niveau de silence,
et annuler le fichier de configuration.
Élément de configuration&nbsp;: <literal/quiet/.
     </VarListEntry>

     <VarListEntry><term><option/--delink/</>
     <ListItem><Para>
Faire une déliaison. Si <literal/External-Links/ est activé, cette option
permet réellement la déliaison des fichiers. Par défaut, elle est activée mais
elle peut être désactivée avec l'option <option/--no-delink/.
Élément de configuration&nbsp;: <literal/APT::FTPArchive::DeLinkAct/.
     </VarListEntry>

     <VarListEntry><term><option/--contents/</>
     <ListItem><Para>
Permettre la création d'un fichier «&nbsp;Contents&nbsp;». Quand cette option 
est activée et que les index sont créés sous forme de base de données binaire,
la liste des fichiers est aussi extraite et conservée dans la base de données
pour un usage futur. Avec la commande generate, cette option permet la
création de fichiers «&nbsp;Contents&nbsp;». Par défaut, elle est activée.
Élément de configuration&nbsp;: <literal/APT::FTPArchive::Contents/.
     </VarListEntry>

     <VarListEntry><term><option/-s/</><term><option/--source-override/</>
     <ListItem><Para>
Indique le fichier d'«&nbsp;override&nbsp;» à utiliser avec la commande 
<literal/sources/.
Élément de configuration&nbsp;: <literal/APT::FTPArchive::SourceOverride/.
     </VarListEntry>

     <VarListEntry><term><option/--readonly/</>
     <ListItem><Para>
N'autoriser que la lecture pour les bases de données de cache.
Élément de configuration&nbsp;: <literal/APT::FTPArchive::ReadOnlyDB/.
     </VarListEntry>   
   
     &apt-commonoptions;
     
   </VariableList>
 </RefSect1>

 <RefSect1><Title>Voir aussi</>
   <para>
   &apt-conf;
 </RefSect1>

 <RefSect1><Title>Diagnostics</>
   <para>
<command/apt-ftparchive/ retourne zéro si tout se passe bien, le nombre
décimal 100 en cas d'erreur.
 </RefSect1>

 &manbugs;
 &manauthor;
 &traducteur;
</refentry>
