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(1)
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 automatiser 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(1).
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(1).
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 Release à partir d'une arborescence. Elle recherche récursivement dans le répertoire indiqué des fichiers
Packages,
Sources,
Contents,
Components
et
icons
non compressés et compressés ainsi que des fichiers
Release,
Index
et
md5sum.txt
par défaut (APT::FTPArchive::Release::Default-Patterns). Des motifs supplémentaires pour les noms de fichiers peuvent être ajoutés en les mentionnant dans
APT::FTPArchive::Release::Patterns. Le fichier
Release
est ensuite affiché sur la sortie standard et comporte (par défaut) des sommes de contrôle MD5, SHA1 et SHA256 et SHA512 pour chaque fichier.
La valeur des autres champs de métadonnées du fichier Release sont tirées de la valeur correspondante dans
APT::FTPArchive::Release, p. ex.
APT::FTPArchive::Release::Origin. Les champs reconnus sont :
Origin,
Label,
Suite,
Version,
Codename,
Date,
NotAutomatic,
ButAutomaticUpgrades,
Acquire-By-Hash,
Valid-Until,
Signed-By,
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
nettoie 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 une liste séparée par des espaces qui contient au moins l'un des compresseurs configuré à travers le champ d'action de configuration
APT::Compressor. La valeur par défaut pour tous les schémas de compression est « . 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 ».
Translation::Compress
-
Identique à
Packages::Compress
mais précise comment est compressé le fichier maître Translations-en.
DeLinkLimit
-
Indique le nombre de kilo-octets à 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é.
LongDescription
-
Définit si les descriptions longues doivent être incluses dans le fichier
Packages
ou déplacées dans un fichier maître
Translation-en.
La section TreeDefault
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 kilo-octets de fichiers « Contents » qui sont créés chaque jour. Les fichiers « Contents » sont choisis 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 « Sources » créé. Par défaut, c'est
$(DIST)/$(SECTION)/source/Sources.
Translation
-
Définit le fichier maître Translation-en qui comporte les descriptions longues si elles ne sont pas incluses dans le fichier Packages. Valeur par défaut : $(DIST)/$(SECTION)/i18n/Translation-en
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 paramètre. 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 paramètre. 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/buster.
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
effectue une opération analogue à :
-
for i in Sections do
for j in Architectures do
Generate for DIST=scope SECTION=i ARCH=j
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 séparées par des espaces qui appartiennent à chaque section. L'architecture spéciale « source » indique que l'arborescence est une arborescence de sources. L'architecture « all » indique que les fichiers spécifiques à l'architecture comme
Packages
ne devraient pas inclure d'informations sur les paquets de l'architecture
all
dans tous les fichiers comme elles devraient être disponibles dans un fichier dédié.
LongDescription
-
Définit si les descriptions longues doivent être incluses dans le fichier
Packages
ou déplacées dans un fichier maître
Translation-en.
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
-
Définit le fichier « Packages » créé.
Sources
-
Définit le fichier « Sources » créé. L'un des deux fichiers,
Packages
ou
Sources
est nécessaire.
Contents
-
Définit le fichier « Contents » créé.
BinOverride
-
Définit le fichier d'« override » pour les binaires.
SrcOverride
-
Définit 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
-
Définit la base de données cache.
PathPrefix
-
Ajoute un chemin à tous les chemins créés.
FileList, SourceFileList
-
Définit le fichier contenant la liste des fichiers.
LE FICHIER D« OVERRIDE » POUR LES BINAIRES.
Le fichier d'« Override » est pleinement compatible avec
dpkg-scanpackages(1). 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(1). 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.
OPTIONS
Toutes les options de la ligne de commande peuvent être définies dans le fichier de configuration, les descriptions indiquant l'option de configuration concernée. Pour les options booléennes, vous pouvez inverser les réglages du fichiers de configuration avec
-f-,--no-f,
-f=no
et d'autres variantes analogues.
--md5, --sha1, --sha256, --sha512
-
Crée la somme de contrôle indiquée. Si ces options sont actives par défaut. Quand elles sont désactivées, les fichiers d'index créés n'auront pas de champ de somme de contrôle là où cela était possible. Éléments de configuration :APT::FTPArchive::Checksum
et
APT::FTPArchive::Index::Checksum
où
Index
peut être
Packages,
Sources
ou
Release
et
Checksum
peut être
MD5,
SHA1,
SHA256
ou
SHA512.
-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) rend le programme de plus en plus silencieux. On peut aussi utiliser
-q=#
pour définir ce « niveau de silence », et ne plus tenir compte des réglages du fichier de configuration. Élément de configuration :
quiet.
--delink
-
Défaire une liaison. Si
External-Links
est activé, cette option permet réellement de délier les 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.
-a, --arch
-
N'accepte dans les commandes
packages
et
contents
que les fichiers de paquets correspondant à
*_arch.deb
ou
*_all.deb
au lieu de tous les fichiers de paquets du chemin indiqué.Élément de configuration :
APT::FTPArchive::Architecture.
APT::FTPArchive::AlwaysStat
-
apt-ftparchive(1)
met le plus de métadonnées possible en cache dans une base de données. Si les paquets sont recompilés ou republiés avec à nouveau la même version, cela pourra causer des problèmes car, alors, les métadonnées en cache (p. ex. les tailles et les sommes de contrôle) seront utilisées. Si cette option est choisie, cela n'arrivera plus car le fichier sera contrôlé pour vérifier s'il a été modifié. Veuillez noter que cette option n'est pas activée par défaut car il est déconseillé d'envoyer dans les archives des versions identiques. En théorie, donc, ces problème ne devraient pas survenir et l'ensemble de ces contrôles devient inutile.
APT::FTPArchive::LongDescription
-
Cette option de configuration a « true » comme valeur par défaut et ne devrait être placée sur « false » que si l'archive créée avec
apt-ftparchive(1)
fournit également des fichiers
Translation. Veuillez noter que le fichier maître
Translation-en
ne peut être créé que par la commande generate.
-h, --help
-
Afficher un bref résumé de l'utilisation.
-v, --version
-
Afficher la version du programme.
-c, --config-file
-
Fichier de configuration ; indique le fichier de configuration à utiliser. Le programme lira le fichier de configuration par défaut puis le fichier indiqué ici. Si les réglages de configuration doivent être établis avant l'analyse des fichiers de configuration par défaut, un fichier peut être indiqué avec la variable d'environnement
APT_CONFIG. Veuillez consulter
apt.conf(5)
pour des informations sur la syntaxe d'utilisation.
-o, --option
-
Définir une option de configuration ; permet de régler une option de configuration donnée. La syntaxe est
-o Foo::Bar=bar.
-o
et
--option
peuvent être utilisées plusieurs fois pour définir des options différentes.
EXEMPLES
Création d'un fichier « Packages » compressé pour un répertoire contenant des paquets binaires (.deb):
-
apt-ftparchive packages répertoire | gzip > Packages.gz
VOIR AUSSI
apt.conf(5)
DIAGNOSTICS
apt-ftparchive
retourne zéro si tout se passe bien, le nombre 100 en cas d'erreur.
BOGUES
m[blue]Page des bogues d'APTm[][1]. Si vous souhaitez signaler un bogue à propos d'APT, veuillez lire
/usr/share/doc/debian/bug-reporting.txt
ou utiliser la commande
reportbug(1).
TRADUCTEURS
Jérôme Marant, Philippe Batailler, Christian Perrier
<bubulle@debian.org>
(2000, 2005, 2009, 2010), Équipe de traduction francophone de Debian
<debian-l10n-french@lists.debian.org>
Veuillez noter que cette traduction peut contenir des parties non traduites. Cela est volontaire, pour éviter de perdre du contenu quand la traduction est légèrement en retard sur le contenu d'origine.
AUTEURS
Jason Gunthorpe
-
Équipe de développement d'APT
-
NOTES
- 1.
-
Page des bogues d'APT
-
http://bugs.debian.org/src:apt