4.21 apt-ftparchive

apt-ftparchive erzeugt Index-Dateien, die von apt benutzt werden können, um auf ein Paketverzeichnis zuzugreifen. Die Funktionalität ist vergleichbar mit der von dpkg-scanpackages und dpkg-scansources; apt-ftparchive kann diese Programme ersetzen.

Die Syntax von apt-ftparchive lautet:

apt-ftparchive [-hvdsq] [- -md5] [- -delink] [- -readonly] [- -contents] 
    [-o= config string] [-c=file] {packages path... [override [pathprefix]] |
    sources path... [override [pathprefix]] | contents path | release path |
    generate config-file section... | clean config-file}
		

Intern verwendet apt-ftparchive eine (binäre) Datenbank, die die Informationen zu den Debian-Paketen zwischenspeichert. Es werden, mit Ausnahme von gzip , keine weiteren externen Programme benötigt.

Kommandos

packages

Das packages-Kommando erzeugt einen Paket-Index (Datei Packages) aus dem angegeben Verzeichnis. Dieses wird dazu rekursiv nach Debian-Paketen durchsucht. Jedes gefundene Debian-Paket wird analysiert, und es wird ein entsprechender Eintrag für die Packages-Datei erzeugt. Die Ausgabe erfolgt auf der Standard-Ausgabe und muss in die gewünschte Datei umgeleitet werden (meist Packages). Dieses Kommando entspricht im Wesentlichen dem Befehl dpkg-scanpackages.

Mit der Option --db kann die Verwendung einer binären Datenbank zur Zwischenspeicherung der Ergebnisse aktiviert werden.

sources

Erzeugt eine Index-Datei für Quellcode-Pakete aus dem angegebenen Verzeichnisbaum. Dabei wird nach Dateien mit der Endung .dsc gesucht, und es wird für jede gefundene Datei ein Eintrag auf der Standardausgabe erzeugt. Dieses Kommando ähnelt dpkg-scansources, .

Mit der Option --source-override kann eine andere Override-Datei verwendet werden.

contents

Mit diesem Kommando wird die Datei Contents erzeugt. Das angegebene Verzeichnis wird rekursiv nach Debian-Paketen durchsucht, jedes Paket wird analysiert, und die in dem Paket enthaltenen Dateien werden, in sortierter Reihenfolge, in der Contents-Datei vermerkt. Verzeichnisse, die keine Dateien beinhalten, werden nicht in die Auflistung aufgenommen. Ist eine Datei in mehreren Paketen enthalten, so werden diese Pakete durch Komma getrennt in der Auflistung aufgeführt.

Mit der Option --db kann die Verwendung einer binären Datenbank zur Zwischenspeicherung der Ergebnisse aktiviert werden.

release

Dieses Kommando dient zum Erzeugen einer Release-Datei. Das angegebene Verzeichnis wird rekursiv nach den Dateien Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, Sources.bz2, Release und md5sum.txt durchsucht. Auf der Standardausgabe wird darauf basierend eine Ausgabe erzeugt, die einen MD5- und SHA1-Extract für jede Datei enthält.

Weitere Felder mit Metadaten können über die Konfigurationsdatei eingefügt werden. Hierzu dient die Variable APT::FTPArchive::Release. Eine erlaubte Angabe kann beispielsweise APT::FTPArchive::Release::Origin sein. Erlaubte Werte sind hier Origin, Label, Suite, Version, Codename, Date, Architectures, Components und Description.

generate

Dieses Kommando wird im Allgemeinen aus einem Cron-Job heraus aufgerufen und erzeugt Index-Dateien aus einer Konfigurationsdatei.

clean

Dieses Kommando löscht alle nicht mehr benötigten Einträge aus den Datenbanken, die in der Konfiguration definiert sind.

apt-ftparchive nutzt eine KOonfigurationsdatei, welche mit dem Kommando generate erzeugt werden kann. In dieser Konfigurationsdatei werden die Archive beschrieben die erzeugt werden sollen. Die Syntax dieser Datei folgt dem üblichen ISC Format welches auch von Programmen wie bind oder auch dhcpd bekannt ist. Die Manpage zu apt.conf(5) enthält eine Beschreibung dieser Syntax.

Die erzeugte Konfiguration teilt sich in die vier im folgenden beschriebenen Abschnitte.

Abschnitte der Konfiguration

Dir

Dieser Abschnitt beschreibt die Verzeichnisse in denen nach Dateien gesucht werden soll. Diese Angaben werden mit Verzeichnisangaben aus späteren Abschnitten verknüpft um einen absoluten Pfad zu jeder Datei zu erzeugen.

ArchiveDir

Dieser Wert gibt das Wurzelverzeichnis des FTP Archives an. Dies ist normalerweise das Verzeichnis in dem sich das Unterverzeichnis dists und die Datei ls-LR befinden.

OverrideDir

Gibt an wo sich die Override-Dateien befinden.

CacheDir

Pfadangabe zu den Cache-Dateien.

FileListDir

Wird die weiter unten beschriebene Option FileList genutzt, so kann hier ein Verzeichnis angegeben werden in dem Dateilisten abgelegt werden.

Default

Dieser Abschnitt setzt einige Vorgabewerte, diese können in anderen Abschnitten überschrieben werden.

Packages::Compress

Bestimmt den verwendeten Kompressionsalgorythmus um die Packages-Dateien zu komprimieren. Dieser Wert ist ein String in dem die einzelnen Werte durch Leerzeichen (Space) getrennt werden. Es sind die Werte gzip, bzip2 und . (für keine Kompression) erlaubt. Wird dieser Wert nicht angegeben, so wird gzip verwendet.

Packages::Extensions

Bestimmt die Dateiendung für Debian Pakete, dies ist normalerweise .deb.

Sources::Compress

Wie Packages::Compress, jedoch für Quellcode Pakete.

Sources::Extensions

Dateiendung für für Quellcodepakete, normalerweise .dsc.

Contents::Compress

Wie bei Packages::Compress, jedoch für das Komprimieren der Packages-Dateien.

DeLinkLimit

Wert in Kilobyte der Dateien die gelöscht und durch Hard-Links ersetzt werden sollen. Dies ist sinnvoll im Zusammenhang mit Einstellungen für externe Links.

FileMode

Setzt die Zugriffsrechte für alle erzeugten Index-Dateien. Voreingestellt ist der Wert 0644. Diese Rechte werden unabhängig von einem eventuell via umask gesetztem Wert verwendet.

TreeDefault

Diese Variablen wirken sich nur auf die folgenden Abschnitte zum Verzeichnisbaum aus. Alle Variablen werden substituiert und die Strings $(DIST), $(SECTION) und $(ARCH) werden in die entsprechenden Inhalte umgesetzt.

MaxContentsChange

Bestimmt die maximale Anzahl von Kilobyte der Contents Dateien die pro Tag erzeugt werden. Die Contents-Dateien werden rotiert, so das nach ein paar Tagen alle Dateien neu erzeugt wurden.

ContentsAge

Directory

Setzt das Wurzelverzeichnis für den Verzeichnisbaum mit Debian Binär-Paketen. Wird nichts angegeben, so wird $(DIST)/$(SECTION)/binary-$(ARCH)/ verwendet.

SrcDirectory

Setzt das Wurzelverzeichnis für den Verzeichnisbaum mit Debian Quellcode-Paketen. Wird nichts angegeben, so wird $(DIST)/$(SECTION)/source/ verwendet.

Alle Optionen, die auf der Kommandozeile übergeben werden, können auch in der Konfigurationsdatei gesetzt werden. Logische Operatoren können dabei in der Form -f-, --no-f, -f=no angeben werden.

Optionen

--md5

Erzeugt MD5-Checksummen der Pakete. Diese werden in die generierten Index-Dateien aufgenommen. Wird diese Option deaktiviert, so werden keine MD5-Checksummen erzeugt, soweit dies möglich ist. Der entsprechende Eintrag in der Konfigurationsdatei lautet APT::FTPArchive::MD5.

-d, --db

Benutzt eine Cache-Datenbank in einem binären Format zur Verbesserung der Zugriffszeiten. Der entsprechende Eintrag in der Konfigurationsdatei lautet APT::FTPArchive::DB.

-q, --quiet

Erzeugt weniger Ausgaben; es werden zunächst keine Fortschrittsanzeigen ausgegeben. Diese Option kann auch doppelt eingesetzt (oder mit der Syntax -q=2) werden, um den Effekt zu verstärken. Der entsprechende Eintrag in der Konfigurationsdatei lautet quiet.

--delink

Aktiviert das Löschen von Dateien. Deaktiviert wird dieses Verhalten durch die Option --no-delink. Der entsprechende Eintrag in der Konfigurationsdatei lautet APT::FTPArchive::DeLinkAct.

--contents

Mit dieser Option lassen sich Contents-Dateien erzeugen, als Basis werden die Informationen aus der Cache-Datenbank genommen. Der entsprechende Eintrag in der Konfigurationsdatei lautet APT::FTPArchive::Contents.

-s, --source-override

Gibt, in Zusammenhang mit dem source-Kommando, die Source-Override-Datei an. Der entsprechende Eintrag in der Konfigurationsdatei lautet APT::FTPArchive::SourceOverride.

--readonly

Öffnet die Cache-Datenbank im Nur-lesen-Modus. Der entsprechende Eintrag in der Konfigurationsdatei lautet APT::FTPArchive::ReadOnlyDB.

-h, --help

Gibt eine Hilfe zu apt-ftparchive aus.

-v, --version

Zeigt die Version des Programms an.

-c, --config-file

Gibt den Namen einer Konfigurationsdatei an. Zunächst wird die Standard-Konfigurationsdatei gelesen, danach die mit dieser Option übergebene Konfigurationsdatei. Die Syntax entspricht der Datei apt.conf, siehe apt.conf .

-o, --option

Hiermit kann eine beliebige Option gesetzt werden, die Syntax lautet -o Foo::Bar=bar.

Um nun beispielsweise eine komprimierte Datei Packages.gz für ein Verzeichnis mit einigen Binär-Paketen zu erzeugen, kann apt-ftparchive wie folgt benutzt werden:

apt-ftparchive packages directory | gzip > Packages.gz