man apt-ftparchive (Commandes) - Un outil pour créer des index

NAME

apt-ftparchive - Un outil pour créer des index

SYNOPSIS

apt-ftparchive [-hvdsq] [--md5] [--delink] [--readonly] [--contents] [-o=option de configuration] [-c=fichier] {packages chemin... [override [préfixe-de-chemin]] | sources chemin... [override [préfixe-de-chemin]] | contents chemin | release chemin | generate fichier-de-configuration section... | clean fichier-de-configuration}

DESCRIPTION

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.

apt-ftparchive est un ensemble comprenant le programme dpkg-scanpackages(8) et toutes ses fonctionnalités via la commande packages~; il comprend aussi un générateur de fichier «~Contents~», la commande contents, et une technique élaborée pour «~scripter~» le processus de création d'une archive complète.

Apt-ftparchive peut utiliser lui-même des bases de données binaires pour «~cacher~» le contenu d'un fichier .deb~; il n'a pas besoin de programmes extérieurs, sauf gzip(1). Lors d'une exécution, il vérifie les changements dans les fichiers et crée les fichiers compressés voulus.

À moins que l'option -h ou --help ne soit donnée, l'une des commandes suivantes doit être présente~:

packages
La commande packages crée un fichier «~Packages~» à 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(8).

On peut se servir de l'option --db pour demander un cache binaire.

sources
La commande 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(8).

Quand on précise un fichier «~override~», c'est un fichier source avec une extension .src qui est recherché. On peut se servir de l'option --source-override pour changer de fichier source d'«~override~».

contents
La commande contents crée un fichier «~Contents~» à 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.

On peut se servir de l'option --db pour demander un cache binaire.

release
La commande release crée un fichier Releases à partir d'un répertoire. Elle cherche récursivement dans ce répertoire les fichiers Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, Sources.bz2, Release et md5sum.txt. Elle envoie alors un fichier Release sur la sortie standard avec un résumé MD5 et un résumé SHA1 pour chaque fichier.

La valeur des autres champs du fichier Release est tirée de la valeur correspondante dans APT::FTPArchive::Release, p. ex. APT::FTPArchive::Release::Origin. Les champs reconnus sont : Origin, Label, Suite, Version, Codename, Date, Architectures, Components, Description.

generate
La commande 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.
clean
La commande clean range les bases de données utilisées par le fichier de configuration en supprimant les enregistrements qui ne sont plus nécessaires.

CONFIGURATION DE LA COMMANDE GENERATE

La commande 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. Le fichier apt.conf(5) décrit ce format. Il faut noter que l'analyse de ce fichier se fait par section tandis que celle d'apt.conf(5) se fait par arborescence. Cela n'affecte que l'usage de l'étiquette de visée (scope tag).

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

La section Dir

La section 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.

ArchiveDir
Indique la racine de l'archive FTP~; Pour une configuration Debian classique, c'est le répertoire qui contient le fichier ls-LR et les noeuds des distributions.
OverrideDir
Indique l'emplacement des fichiers d'«~override~».
CacheDir
Indique l'emplacement des fichiers de cache.
FileListDir
Indique l'emplacement des fichiers contenant la liste des fichiers (si on se sert de la valeur FileList définie plus bas).

La section Default

La section 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).

Packages::Compress
Indique comment sont compressés les fichiers d'index. C'est une chaîne qui contient des valeurs séparées par des espaces~; elle contient au moins l'une des valeurs suivantes~: «~.~» (pas de compression), «~gzip~», «~bzip2~». Par défaut, c'est la chaîne «~. gzip~».
Packages::Extensions
Indique la liste par défaut des extensions de fichier qui constituent des paquets. Par défaut, c'est «~.deb~».
Sources::Compress
Identique à Packages::Compress mais précise comment sont compressés les fichiers sources.
Sources::Extensions
Indique la liste par défaut des extensions de fichier qui constituent des fichiers sources. Par défaut, c'est «~.dsc~».
Contents::Compress
Identique à Packages::Compress mais précise comment sont compressés les fichiers «~Contents~».
DeLinkLimit
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 External-Links.
FileMode
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é.

La section TreeDefault

On indique les valeurs par défaut particulières à la section Tree. Toutes ces variables sont des variables de substitution~; les chaînes $(DIST), $(SECTION) et $(ARCH) sont remplacées par leur valeur respective.

MaxContentsChange
Indique le nombre de kilooctets de fichiers «~Contents~» qui sont créés chaque jour. Les fichiers «~Contents~» sont tirés au sort selon le système round-robin de manière que, sur plusieurs jours, tous soient reconstruits.
ContentsAge
Contrôle le nombre de jours pendant lequel un fichier «~Contents~» peut être utilisé sans actualisation. Quand cette limite est franchie, le «~mtime~» du fichier «~Contents~» est mis à jour. Cela peut arriver quand un fichier est modifié sans que cela modifie le fichier «~Contents~» (modification par «~override~» par exemple). Un délai est permis dans l'espoir que de nouveaux «~.deb~» seront installés, exigeant un nouveau «~Contents~». Par défaut ce nombre vaut 10, l'unité étant le jour.
Directory
Indique la racine de l'arborescence des «~.deb~». Par défaut, c'est $(DIST)/$(SECTION)/binary-$(ARCH)/.
SrcDirectory
Indique la racine de l'arborescence des paquets source. Par défaut, c'est $(DIST)/$(SECTION)/source/.
Packages
Indique le fichier «~Packages~» créé. Par défaut, c'est $(DIST)/$(SECTION)/binary-$(ARCH)/Packages.
Sources
Indique le fichier «~Packages~» crée. Par défaut, c'est $(DIST)/$(SECTION)/source/Sources.
InternalPrefix
Indique un préfixe de chemin~; 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 $(DIST)/$(SECTION)/.
Contents
Indique le fichier «~Contents~» créé. Par défaut, c'est $(DIST)/Contents-$(ARCH). Quand le paramètrage fait que différents fichiers «~Packages~» se réfèrent à un seul fichier «~Contents~», apt-ftparchive les intègre automatiquement.
Contents::Header
Indique l'en-tête à préfixer au fichier «~Contents~» créé.
BinCacheDB
Indique la base de données binaire servant de cache pour cette section. Différentes sections peuvent partager cette base de données.
FileList
Indique qu'au lieu de lire l'arborescence, 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.
SourceFileList
Indique qu'au lieu de lire l'arborescence, 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.

La section Tree

La section 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 Directory.

La section Tree accepte une étiquette de visée (scope tag) qui détermine la variable $(DIST) et la racine de l'arborescence (le chemin est préfixé par ArchiveDir). C'est par exemple~: dists/woody.

Tous les paramètres définis dans la section TreeDefault peuvent s'utiliser dans la section Tree ainsi que les trois nouvelles variables suivantes.

Quand il exécute la section Tree, apt-ftparchive agit ainsi~: .IP .nf for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j .fi

Sections
C'est une liste de sections séparées par des espaces qui appartiennent à une distribution~; classiquement, on trouve main contrib non-free.
Architectures
C'est une liste de toutes les architectures qui appartiennent à chaque section. L'architecture spéciale «~source~» indique que l'arborescence est une arborescence de sources.
BinOverride
Indique le fichier binaire d'«~override~». Ce fichier contient des informations sur la section, la priorité et le responsable du paquet.
SrcOverride
Indique le fichier source d'«~override~». Ce fichier contient des informations sur la section.
ExtraOverride
Indique un autre fichier d'«~override~» pour les binaires.
SrcExtraOverride
Indique un autre fichier d'«~override~» pour les sources.

La section BinDirectory

La section 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 Tree sans substitution de variables ou au paramètrage de SectionArchitecture.

Packages
Indique le fichier «~Packages~» créé.
SrcPackages
Indique le fichier «~Sources~» créé. L'un des deux fichiers, Packages ou SrcPackages est nécessaire.
Contents
Indique le fichier «~Contents~» créé.
Binoverride
Indique le fichier d'«~override~» pour les binaires.
SrcOverride
Indique le fichier d'«~override~» pour les sources.
ExtraOverride
Indique un autre fichier d'«~override~» pour les binaires.
SrcExtraOverride
Indique un autre fichier d'«~override~» pour les sources.
BinCacheDB
Indique une base de données cache.
PathPrefix
Ajoute un chemin à tous les chemins créés.
FileList, SourceFileList
Indique le fichier contenant la liste des fichiers.

LE FICHIER D'« OVERRIDE » POUR LES BINAIRES.

Le fichier d'«~Override~» est pleinement compatible avec dpkg-scanpackages(8). Il contient quatre champs séparés par des espaces. Le premier est le nom du paquet~; le deuxième est la priorité à donner à ce paquet~; le troisième est sa section et le dernier champ est un champ pour changer le nom du responsable de paquet.

Le champ du responsable est de cette forme~:

old [// oldn]* => new

ou simplement,

new

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.

LE FICHIER D'« OVERRIDE » POUR LES SOURCES

Le fichier d'«~Override~» est pleinement compatible avec dpkg-scansources(8). Il contient deux champs. Le premier est le nom du paquet source~; le second, sa section.

LE FICHIER SUPPLéMENTAIRE D'« OVERRIDE »

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

LES OPTIONS

Toutes les options en ligne de commande peuvent être positionnées via le fichier de configuration~; les descriptifs indiquent l'option de configuration à positionner. En ce qui concerne les options booléennes, on peut annuler le fichier de configuration en utilisant quelque chose comme -f-,--no-f, -f=no ou d'autres variantes.

--md5
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~: APT::FTPArchive::MD5.
-d, --db
Utiliser une base de données binaire pour cache. Cela n'a aucun effet sur la commande generate. Élément de configuration~: APT::FTPArchive::DB.
-q, --quiet
Mode silencieux~; cette commande produit une sortie destinée à l'enregistrement dans un fichier-journal en omettant les indicateurs de progression. Un plus grand nombre de «~q~» (2 au plus) produit un plus grand silence. On peut aussi utiliser -q=# pour positionner le niveau de silence, et annuler le fichier de configuration. Élément de configuration~: quiet.
--delink
Faire une déliaison. Si 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 --no-delink. Élément de configuration~: APT::FTPArchive::DeLinkAct.
--contents
Permettre la création d'un fichier «~Contents~». 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 «~Contents~». Par défaut, elle est activée. Élément de configuration~: APT::FTPArchive::Contents.
-s, --source-override
Indique le fichier d'«~override~» à utiliser avec la commande sources. Élément de configuration~: APT::FTPArchive::SourceOverride.
--readonly
N'autoriser que la lecture pour les bases de données de cache. Élément de configuration~: APT::FTPArchive::ReadOnlyDB.
-h, --help
Affiche un mode d'emploi succinct.
-v, --version
Affiche la version du programme.
-c, --config-file
Fichier de configuration~; indique quel fichier de configuration utiliser. Le programme lit le fichier de configuration par défaut, puis celui-ci. Voyez apt.conf(5) pour la syntaxe.
-o, --option
Donne une option de configuration~; cela fixe une option de configuration arbitraire. La syntaxe est : -o Foo::Bar=bar.

VOIR AUSSI

DIAGNOSTICS

apt-ftparchive retourne zéro si tout se passe bien, le nombre décimal 100 en cas d'erreur.

BOGUES

Voyez la page concernant les bogues d'APT: http://bugs.debian.org/src:apt. Si vous voulez signaler un bogue, consultez le texte /usr/share/doc/debian/bug-reporting.txt ou utilisez la commande reportbug(1).

TRADUCTION

Philippe Batailler. <debian-l10n-french@lists.debian.org>. 2005.

AUTHORS

Jason Gunthorpe, APT team.