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 Standardausgabe 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 Konfigurationsdatei, 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
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.
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.
Gibt an, wo sich die Override-Dateien befinden.
Pfadangabe zu den Cache-Dateien.
Wird die weiter unten beschriebene Option FileList
genutzt, so kann hier
ein Verzeichnis angegeben werden, in dem Dateilisten abgelegt
werden.
Dieser Abschnitt setzt einige Vorgabewerte, diese können in anderen Abschnitten überschrieben werden.
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.
Bestimmt die Dateiendung für Debian Pakete, dies ist
normalerweise .deb
.
Wie Packages::Compress
, jedoch für
Quellcode Pakete.
Dateiendung für Quell-Codepakete, normalerweise .dsc
.
Wie bei Packages::Compress
, jedoch für
das Komprimieren der Packages-Dateien.
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.
Setzt die Zugriffsrechte für alle erzeugten Index-Dateien.
Voreingestellt ist der Wert 0644
. Diese Rechte werden
unabhängig von einem eventuell via umask
gesetzten Wert verwendet.
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.
Bestimmt die maximale Anzahl von Kilobyte der Contents- Dateien, die pro Tag erzeugt werden. Die Contents-Dateien werden rotiert, so dass nach ein paar Tagen alle Dateien neu erzeugt wurden.
Setzt die maximale Anzahl von Tagen, die eine Contents-Datei
überprüft wird, ohne eine Veränderung vorzunehmen. Ist dieses
Limit überschritten, so wird die mtime
dieser Datei überschrieben.
Es kann vorkommen, dass eine Contents-Datei nicht verändert werden muss, obwohl die Packages-Datei eine Änderung erfahren hat. Dies ist beispielsweise der Fall, wenn das Paket nicht verändert wurde, aber Informationen in der Override-Datei verändert wurden.
Setzt das Wurzelverzeichnis für den Verzeichnisbaum mit
Debian Binär-Paketen. Wird nichts angegeben, so wird $(DIST)/$(SECTION)/binary-$(ARCH)/
verwendet.
Setzt das Wurzelverzeichnis für den Verzeichnisbaum mit
Debian Quellcode-Paketen. Wird nichts angegeben, so wird $(DIST)/$(SECTION)/source/
verwendet.
Setzt den Dateinamen der Datei für die Packages-Datei.
Voreingestellt ist $(DIST)/$(SECTION)/binary-$(ARCH)/Packages
.
Setzt den Dateinamen der Datei für die Sources-Datei.
Voreingestellt ist $(DIST)/$(SECTION)/source/Sources
.
Setzt den Prefix, der bei einem symbolischen Link dazu führt,
dass ein interner statt eines externen Links verwendet wird.
Voreingestellt ist $(DIST)/$(SECTION)/
.
Setzt den Dateinamen und Pfad für die erzeugte
Contents-Datei. Voreingestellt ist $(DIST)/Contents-$(ARCH)
. Führt
diese Einstellung dazu, dass die Informationen aus verschiedenen
Packages-Dateien in einer einzigen Contents-Datei
zusammengefasst werden, so wird dies von apt-ftparchive
automatisch
gehandelt.
Setzt einen Header, welcher an den Anfang der Contents-Datei geschrieben wird.
Setzt eine binäre Datenbank für diesen Abschnitt, diese kann auch von anderen Abschnitten gemeinsam genutzt werden.
Diese Option gibt an, dass die Liste der Dateien nicht mittels Durchsuchens des Verzeichisbaumes erzeugt werden soll, sondern die Informationen aus einer Datei gelesen werden. Relative Dateinamen werden mit dem Pfad des Archive-Verzeichnisses versehen.
Diese Option gibt an, dass die Liste der Dateien nicht mittels Durchsuchens des Verzeichisbaumes erzeugt werden soll, sondern die Informationen aus einer Datei gelesen werden. Relative Dateinamen werden mit dem Pfad des Archive-Verzeichnisses versehen. Diese Option wird für Quellcode-Indices verwendet.
Dieser Abschnitt beschreibt den Verzeichnisbaum, welcher aus einem Basisverzeichnis, darunter liegenden Verzeichnissen für die verschiedenen Abschnitte und darin Verzeichnissen für die Architekturen besteht.
In diesem Abschnitt wird die Variable $(DIST)
benutzt, welche das Hauptverzeichnis
für den Verzeichnisbaum darstellt. Zusammen mit dem Wert für ArchiveDir
ergibt dies üblicherweise so etwas
wie dists/sarge
.
Alle Werte, die im Abschnitt TreeDefault
benutzt werden, können auch in
diesem Abschnitt gesetzt werden, hinzu kommen drei neue Variablen.
Eine mittels Leerzeichen (SPACE) separierte Liste von Abschnitten, die unterhalb der Angabe der Distribution aufgeführt werden, meistens ist dies „main“, „contrib“ und „non-free“.
Eine mittels Leerzeichen (SPACE) separierte Liste von Architekturen, die unterhalb der Angabe des Abschnittes „Sections“ aufgeführt werden, meistens ist dies „i386“, möglich ist aber auch „powerpc“, „sparc“ usw. Der Wert „source“ ist für Quellcode-Distributionen vorgesehen.
Setzt den Pfad und Dateinamen für die Override-Datei für Binär-Pakete. In der Override-Datei sind Informationen zum Abschnitt und der Priorität eines Paketes sowie die Mail-Adresse des Maintainers enthalten.
Wie „BinOverride“, jedoch für Quellcode-Pakete. Diese Override-Datei enthält Informationen zum Abschnitt.
Die Override-Datei Extra-Pakete.
Die Override-Datei Quellcode Extra-Pakete.
Dieser Abschnitt beschreibt ein Verzeichnis für Binär-Pakete ohne eine besondere Struktur.
Pfad und Dateiname der Packages-Datei.
Pfad und Dateiname der Packages-Datei für Quellcode-Pakete.
Es muss einer der beiden Werte für Packages
oder SrcPackages
gesetzt sein.
Die Contents-Datei, ein optionaler Wert.
Die binäre Override-Datei.
Die Quellcode Override-Datei.
Override-Datei für Extras.
Override-Datei für Extra Quellcode-Pakete.
Pfad und Dateiname zur Datenbank.
Pfad zu allen Ausgabedateien.
Datei mit Liste der Dateien.
Diese Datei ist voll kompatibel mit dem Programm dpkg-scanpackages
.
Sie enthält vier Spalten, welche durch Leerzeichen getrennt werden. In
der ersten Spalte steht der Paketname, in der zweiten die Priorität, welche für
dieses Paket gesetzt werden soll. Die dritte Spalte beschreibt den Abschnitt, in dem
das Paket gelistet werden soll, die vierte Spalte nennt den Betreuer des Paketes.
In der vierten Spalte kann, neben einem Namen, welcher dann ersetzt wird, auch eine
Liste von Namen aufgeführt werden. Diese Namen müssen durch doppelte Slashes (//
) getrennt und von eckigen Klammern
umschlossen werden. Wird einer der aufgeführten Einträge gefunden, so wird dieser
durch den neuen Wert ersetzt. Die Syntax hierfür lautet:
old [// oldn]* => new
Diese Datei ist voll kompatibel mit dem Programm dpkg-scanpackages
.
Der Inhalt dieser Datei besteht aus zwei Spalten, durch Leerzeichen
getrennt. Die erste Spalte enthält den Namen des Quellcode-Paketes, die zweite
Spalte den Abschnitt, in dem das Paket aufgeführt werden soll.
Diese Datei erlaubt es, neue Tags hinzuzufügen oder bestehende Tags zu verändern. In drei Spalten wird zunächst der Paketname, dann der Tag-Name und zuletzt der Inhalt des Tag aufgeführt.
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
© 1999 - 2024 | Das Debian GNU/Linux Anwenderhandbuch von Frank Ronneburg steht unter einer Creative Commons Namensnennung-Nicht Kommerziell-Keine Bearbeitung 3.0 Deutschland Lizenz.