ist das Befehlszeilenwerkzeug, das Indexdateien generiert, die APT zum Zugriff auf eine Distributionsquelle benutzt. Die Indexdateien sollten auf der Ursprungs-Site auf Basis des Inhalts dieser Site generiert werden.
apt-ftparchive
ist eine Obermenge des
dpkg-scanpackages(1)-Programms, das dessen ganze Funktionalität über den
packages-Befehl enthält. Es enthält auch einen Generator für Contents-Dateien,
contents
und ein Mittel, um den Generierungsprozess für ein komplettes Archiv zu »skripten«.
Intern kann
apt-ftparchive
von Programmdatenbanken Gebrauch machen, um die Inhalte einer .deb-Datei zwischenzuspeichern und es verlässt sich nicht auf irgendwelche externen Programme, abgesehen von
gzip(1). Wenn eine vollständige Generierung erfolgt, werden automatisch Dateiänderungsprüfungen durchgeführt und die gewünschten komprimierten Ausgabedateien erzeugt.
Sofern nicht die
-h-, oder
--help-Option angegeben ist, muss einer der nachfolgend aufgeführten Befehle vorkommen.
packages
-
Der »packages«-Befehl generiert eine Paketdatei aus einem Verzeichnisbaum. Er nimmt ein vorgegebenes Verzeichnis und durchsucht es rekursiv nach .deb-Dateien, wobei es für jede einen Paketdatensatz auf Stdout ausgibt. Dieser Befehl entspricht etwa
dpkg-scanpackages(1).
Die Option
--db
kann benutzt werden, um eine Datenbank zum Zwischenspeichern von Programmen anzugeben.
sources
-
Der
sources-Befehl generiert eine Quellenindexdatei aus einem Verzeichnisbaum. Er nimmt ein vorgegebenes Verzeichnis und durchsucht es rekursiv nach .dsc-Dateien, wobei es für jede einen Quelldatensatz auf Stdout ausgibt. Dieser Befehl entspricht etwa
dpkg-scansources(1).
Wenn eine außer Kraft setzende Datei angegeben ist, wird nach einer Quelldatei zum Überschreiben mit einer .src-Dateiendung gesucht. Die Option »--source-override« kann benutzt werden, um die Quelldatei zum Überschreiben, die benutzt wird, zu ändern.
contents
-
Der
contents-Befehl generiert eine Inhaltsdatei aus einem Verzeichnisbaum. Er nimmt ein vorgegebenes Verzeichnis und durchsucht es rekursiv nach .deb-Dateien und liest die Dateiliste von jeder Datei. Dann sortiert er die Liste der passenden Pakete und schreibt sie nach Stdout. Verzeichnisse werden nicht in die Ausgabe geschrieben. Falls mehrere Pakete die gleiche Datei besitzen, dann befindet sich jedes Paket durch Komma getrennt in der Ausgabe.
Die Option
--db
kann benutzt werden, um eine Datenbank zum Zwischenspeichern von Programmen anzugeben.
release
-
Der Befehl
release
erzeugt eine Release-Datei aus einem Verzeichnisbaum. Standardmäßig durchsucht er rekursiv das angegebene Verzeichnis nach nicht komprimierten und komprimierten
Packages-,
Sources-,
Contents-,
Components- und
icons-Dateien, ebenso wie standardmäßig
Release-,
Index
und
md5sum.txt-Dateien (APT::FTPArchive::Release::Default-Patterns). Zusätzliche Muster für Dateinamen können hinzugefügt werden, indem sie in
APT::FTPArchive::Release::Patterns
aufgeführt werden. Dann schreibt er eine
Release-Datei auf die Standardausgabe, die (standardmäßig) für jede Datei eine MD5-, SHA1-, SHA256- und SHA512-Prüfsumme enthält.
Werte für zusätzliche Metadatenfelder in der Release-Datei werden den entsprechenden Variablen unter
APT::FTPArchive::Release
entnommen, z.B.
APT::FTPArchive::Release::Origin. Die unterstützten Felder sind:
Origin,
Label,
Suite,
Version,
Codename,
Date,
NotAutomatic,
ButAutomaticUpgrades,
Acquire-By-Hash,
Valid-Until,
Signed-By,
Architectures,
Components,
Description.
generate
-
Der
generate-Befehl wurde entworfen, um von einem Cron-Skript ausführbar zu sein und bildet Indexe, die der angegebenen Konfigurationsdatei entsprechen. Die Konfigurationssprache stellt eine flexible Möglichkeit bereit, um anzugeben, welche Indexdateien von welchen Verzeichnissen gebildet wurden, ebenso wie sie eine einfache Möglichkeit zur Verwaltung der erforderlichen Einstellungen bereitstellt.
clean
-
Der
clean-Befehl räumt die Datenbanken auf, die von der angegebenen Konfigurationsdatei benutzt wurden, indem es nicht länger nötige Datensätze entfernt.
DIE GENERATE-KONFIGURATION
Der
generate-Befehl benutzt eine Konfigurationsdatei, um die Archive zu beschreiben, die generiert werden sollen. Es folgt dem typischen ISC-Konfigurationsformat, wie es in ISC-Werkzeugen wie Bind 8 oder DHCP gesehen werden kann.
apt.conf(5)
enthält eine Beschreibung der Syntax. Beachten Sie, dass die generate-Konfiguration abschnittsweise ausgewertet wird,
apt.conf(5)
aber baumartig ausgewertet wird. Dies hat nur Auswirkungen, wie die Markierung »scope« behandelt wird.
Die generate-Konfiguration hat vier getrennte Abschnitte, jeder ist unterhalb beschrieben
Dir-Abschnitt
Der
Dir-Abschnitt definiert die Vorgabeverzeichnisse, die zum Orten der benötigten Dateien während des Generierungsprozesses gebraucht werden. Diese Verzeichnisse werden bestimmte relative Pfade, die in späteren Abschnitten definiert werden, vorangestellt, um einen vollständigen absoluten Pfad zu bilden.
ArchiveDir
-
gibt die Wurzel des FTP-Archivs an. In einer Debian-Standardkonfiguration ist das das Verzeichnis, das die
ls-LR- und dist-Knoten enthält.
OverrideDir
-
gibt den Ort der Dateien zum Überschreibenan.
CacheDir
-
gibt den Ort der Zwischenspeicherdateien an.
FileListDir
-
gibt den Ort der Dateilistendateien an, wenn die
FileList
unterhalb benutzt wird.
Default-Abschnitt
Der
Default-Abschnitt gibt Vorgabewerte an und Einstellungen, die den Betrieb des Generators steuern. Andere Abschnitte können diese Vorgaben mit einer Einstellung pro Abschnitt außer Kraft setzen.
Packages::Compress
-
setzt das Standardkompressionsschema, das für die Paketindexdateien benutzt wird. Es ist eine Zeichenkette, die eine durch Leerzeichen getrennte Liste mit mindestens einem der im Konfigurationsbereich
APT::Compressor
eingerichteten Kompressionsprogramme enthält. Die Voreinstellung für alle Kompressionsschemas ist ». gzip«.
Packages::Extensions
-
setzt die Vorgabeliste von Dateierweiterungen, die Paketdateien sind. Vorgabe ist ».deb«.
Sources::Compress
-
Dies ist
Packages::Compress
ähnlich, außer dass es die Kompression der Quelldateien steuert.
Sources::Extensions
-
setzt die Vorgabeliste von Dateierweiterungen, die Quelldateien sind. Vorgabe ist ».dsc«.
Contents::Compress
-
Dies ist
Packages::Compress
ähnlich, außer dass es die Kompression der Contents-Dteien steuert.
Translation::Compress
-
Dies ist
Packages::Compress
ähnlich, außer dass es die Kompression der Translation-en-Hauptdatei steuert.
DeLinkLimit
-
gibt die Anzahl von Kilobyte an, deren Verweis pro Durchlauf entfernt (und durch Hardlinks ersetzt) werden sollen. Dies wird in Verbindung mit der abschnittsweisen Einstellung
External-Links
benutzt.
FileMode
-
gibt den Modus für alle erstellten Indexdateien an. Vorgabe ist 0644. Alle Indexdateien erhalten diese Rechte ohne Beachtung von umask.
LongDescription
-
gesetzt, falls lange Beschreibungen in die
Package-Datei eingeschlossen oder in eine
Translation-en-Hauptdatei unterteilt werden sollen
TreeDefault-Abschnitt
setzt Vorgaben speziell für
Tree-Abschnitte. All diese Variablen sind Platzhaltervariablen und haben die Zeichenketten $(DIST), $(SECTION) und $(ARCH) durch ihre jeweiligen Werte ersetzt.
MaxContentsChange
-
setzt die Anzahl der Kilobyte an Inhaltdateien, die jeden Tag generiert werden. Die Inhaltdateien werden reihum ersetzt, so dass sie über mehrere Tage alle neu gebildet werden.
ContentsAge
-
steuert die Anzahl der Tage, die eine Inhaltsdatei erlaubt ist ohne Änderung geprüft zu werden. Wenn die Grenze überschritten ist, wird die mtime der Inhaltsdatei aktualisiert. Dieser Fall kann auftreten, wenn die Package-Datei in einer Art geändert wurde, die nicht in einer neuen Inhaltsdatei resultierte [außer Kraft setzendes Bearbeiten zum Beispiel]. Ein Aufhalten ist erlaubt, in der Hoffnung dass neue .debs installiert werden, die sowieso eine neue Datei benötigen. Die Vorgabe ist 10, die Einheiten sind Tage.
Directory
-
setzt den Beginn des .deb-Verzeichnisbaums. Vorgabe ist
$(DIST)/$(SECTION)/binary-$(ARCH)/
SrcDirectory
-
setzt den Beginn des Quellpaketverzeichnisbaums. Vorgabe ist
$(DIST)/$(SECTION)/source/
Packages
-
setzt die Ausgabe-Packages-Datei. Vorgabe ist
$(DIST)/$(SECTION)/binary-$(ARCH)/Packages
Sources
-
setzt die Ausgabe-Sources-Datei. Vorgabe ist
$(DIST)/$(SECTION)/source/Sources
Translation
-
setzt die Ausgabe der Translation-en-Hauptdatei mit den langen Beschreibungen falls sie nicht in der Packages-Datei enthalten sein sollen. Vorgabe ist
$(DIST)/$(SECTION)/i18n/Translation-en.
InternalPrefix
-
setzt das Pfad-Präfix, das bewirkt, dass ein symbolischer Verweis wie ein interner anstatt wie ein externer Verweis behandelt wird. Vorgabe ist
$(DIST)/$(SECTION)/
Contents
-
setzt die Ausgabe-Contents-Datei. Vorgabe ist
$(DIST)/$(SECTION)/Contents-$(ARCH). Wenn diese Einstellung bewirkt, dass mehrere Packages-Dateien auf einer einzelnen Inhaltsdatei abgebildet werden (so wie es Vorgabe ist), dann wird
apt-ftparchive
diese Dateien automatisch integrieren.
Contents::Header
-
setzt die Kopfdatendatei, um sie der Inhaltsausgabe voranzustellen.
BinCacheDB
-
setzt die Programmzwischenspeicherdatenbank zur Benutzung in diesem Abschnitt. Mehrere Abschnitte können sich die gleiche Datenbank teilen.
FileList
-
gibt an, dass
apt-ftparchive
die Liste der Dateien aus der vorgegebenen Datei liest, anstatt den Verzeichnisbaum zu durchlaufen. Relativen Dateinamen wird das Archivverzeichnis vorangestellt.
SourceFileList
-
gibt an, dass
apt-ftparchive
die Liste der Dateien aus der vorgegebenen Datei liest, anstatt den Verzeichnisbaum zu durchlaufen. Relativen Dateinamen wird das Archivverzeichnis vorangestellt. Dies wird benutzt, wenn Quellindizes verarbeitet werden.
Tree-Abschnitt
Der
Tree-Abschnitt definiert einen Standard-Debian-Dateibaum, der aus einem Basisverzeichnis, dann mehreren Abschnitten in diesem Basisverzeichnis und am Ende, mehreren Architekturen in jedem Abschnitt besteht. Die genaue benutzte Pfadeinstellung ist durch die
Directory-Ersetzungsvariable definiert.
Der
Tree-Abschnitt akzeptiert eine scope-Markierung, die die
$(DIST)-Variable setzt und die Wurzel des Baumes definiert (dem Pfad wird
ArchiveDir
vorangestellt). Typischerweise ist dies eine Einstellung wie
dists/buster.
Alle im
TreeDefault-Abschnitt definierten Einstellungen können in einem
Tree-Abschnitt, sowie drei neue Variablen benutzt werden.
Wenn ein
Tree-Abschnitt bearbeitet wird, führt
apt-ftparchive
eine Aktion aus, die folgender ähnelt:
-
for i in Abschnitte do
for j in Architekturen do
Generiere for DIST=Geltungsbereich SECTION=i ARCH=j
Sections
-
Dies ist eine durch Leerzeichen getrennte Liste der Abschnitte, die unter der Distribution erscheint, typischerweise etwas wie
main contrib non-free
Architectures
-
Dies ist eine durch Kommas getrennte Liste aller Architekturen, die unter dem Suchabschnitt erscheinen. Die besondere Architektur »source« wird benutzt, um anzuzeigen, dass dieser Verzeichnisbaum über ein Quellarchiv verfügt. Die Architektur »all« signalisiert, dass architekturspezifische Dateien wie
Packages
keine Informationen über Pakete der Architektur
all
enthalten sollten, da sie in einer dedizierten Datei verfügbar sein werden.
LongDescription
-
gesetzt, falls lange Beschreibungen in die
Package-Datei eingeschlossen oder in eine
Translation-en-Hauptdatei unterteilt werden sollen
BinOverride
-
setzt die Binärdatei zum Überschreiben. Die Datei zum Überschreiben enthält Abschnitt, Priorität und Adressinformationen des Betreuers.
SrcOverride
-
setzt die Quelldatei zum Überschreiben. Die Quelldatei zum Überschreiben enthält Abschnittsinformationen.
ExtraOverride
-
setzt die zusätzliche Binärdatei zum Überschreiben.
SrcExtraOverride
-
setzt die zusätzliche Quelldatei zum Überschreiben.
BinDirectory-Abschnitt
Der
bindirectory-Abschnitt definiert einen Binärverzeichnisbaum ohne spezielle Struktur. Die scope-Markierung gibt den Ort des Binärverzeichnisses an und die Einstellungen sind denen des
Tree-Abschnitts ohne Platzhaltervariablen oder
AbschnittArchitektur
ähnlich.
Packages
-
setzt die Packages-Dateiausgabe.
Sources
-
setzt die Sources-Dateiausgabe. Entweder
Packages
oder
Sources
ist erforderlich.
Contents
-
setzt die Contents-Dateiausgabe (optional)
BinOverride
-
setzt die Binärdatei zum Überschreiben.
SrcOverride
-
setzt die Quelldatei zum Überschreiben.
ExtraOverride
-
setzt die zusätzliche Binärdatei zum Überschreiben.
SrcExtraOverride
-
setzt die zusätzliche Quelldatei zum Überschreiben.
BinCacheDB
-
setzt die Zwischenspeicherdatenbank.
PathPrefix
-
hängt einen Pfad an alle Ausgabepfade an.
FileList, SourceFileList
-
gibt die Dateilistendatei an.
DIE PROGRAMMDATEI ZUM ÜBERSCHREIBEN
Die Binärdatei zum Überschreiben ist vollständig zu
dpkg-scanpackages(1)
kompatibel. Sie enthält vier durch Leerzeichen getrennte Felder. Das erste Feld ist der Paketname, das zweite ist die Priorität, zu der das Paket erzwungen wird, das dritte ist der Abschnitt, zu der das Paket erzwungen wird und das letzte Feld ist das Betreuerumsetzungsfeld.
Die allgemeine Form des Betreuerfelds ist:
-
alt [// oldn]* => neu
oder einfach
-
neu
. Die erste Form erlaubt es, eine durch Doppelschrägstrich getrennte Liste alter E-Mail-Adressen anzugegeben. Wenn eine davon gefunden wird, wird die neue für das Betreuerfeld ersetzt. Die zweite Form ersetzt das Betreuerfeld bedingungslos.
DIE QUELLDATEI ZUM ÜBERSCHREIBEN
Die Quelldatei zum Überschreiben ist vollständig kompatibel zu
dpkg-scansources(1). Sie enthält zwei durch Leerzeichen getrennte Felder. Das erste Feld ist der Quellpaketname, das zweite ist der Abschnitt, dem er zugeordnet ist.
DIE ZUSÄTZLICHE DATEI ZUM ÜBERSCHREIBEN
Die zusätzliche Datei zum Überschreiben erlaubt jeder beliebigen Markierung zur Ausgabe hinzugefügt oder darin ersetzt zu werden. Sie hat drei Spalten. Die erste ist das Paket, die zweite ist die Markierung und der Rest der Zeile ist der neue Wert.
OPTIONEN
Alle Befehlszeilenoptionen können durch die Konfigurationsdatei gesetzt werden, die Beschreibung gibt die zu setzende Option an. Für boolesche Optionen können Sie die Konfigurationsdatei außer Kraft setzen, indem Sie etwas der Art
-f-,
--no-f,
-f=no
oder etliche weitere Varianten benutzen.
--md5, --sha1, --sha256, --sha512
-
erzeugt die vorgegebene Prüfsumme. Diese Optionen sind standardmäßig aktiviert. Wenn sie deaktiviert sind, werden die erzeugten Indexdateien nach Möglichkeit keine Prüfsummenfelder erhalten. Konfigurationselemente:
APT::FTPArchive::Prüfsumme
und
APT::FTPArchive::Index::Prüfsumme, wobei
Index
Packages,
Sources
oder
Release
sein kann und
Prüfsumme
MD5,
SHA1,
SHA256
oder
SHA512
sein kann.
-d, --db
-
benutzt eine Binärzwischenspeicherdatenbank. Dies hat keine Auswirkung auf den »generate«-Befehl. Konfigurationselement:
APT::FTPArchive::DB.
-q, --quiet
-
still; erzeugt eine Ausgabe, die für Protokollierung geeignet ist und Fortschrittsanzeiger weglässt. Mehr »q«s unterdrücken mehr Ausgaben, bis zu einem Maximum von 2. Sie können außerdem
-q=#
benutzen, um die Stillestufe zu setzen, was die Konfigurationsdatei außer Kraft setzt. Konfigurationselement:
quiet.
--delink
-
entfernt Verweise. Wenn die
External-Links-Einstellung benutzt wird, schaltet diese Option tatsächlich das Entfernen von Verweisen zu Dateien ein. Standardmäßig ist es an und kann mit
--no-delink
ausgeschaltet werden. Konfigurationselement:
APT::FTPArchive::DeLinkAct.
--contents
-
führt Inhaltsgenerierung durch. Wenn diese Option gesetzt ist und Paketindizes mit einer Zwischenspeicherdatenbank generiert werden, dann wird die Dateiliste auch extrahiert und für spätere Benutzung in der Datenbank gespeichert. Wenn der »generate«-Befehl benutzt wird, erlaubt diese Option außerdem die Erzeugung beliebiger Contents-Dateien. Die Vorgabe ist an. Konfigurationselement:
APT::FTPArchive::Contents.
-s, --source-override
-
wählt die Quelldatei zum außer Kraft setzen, die mit dem
sources-Befehl benutzt wird. Konfigurationselement:
APT::FTPArchive::SourceOverride.
--readonly
-
macht die Zwischenspeicherdatenbank nur lesbar. Konfigurationselement:
APT::FTPArchive::ReadOnlyDB.
-a, --arch
-
akzeptiert in den Befehlen
packages
und
contents
nur Paketdateien, die auf
*_arch.deb
oder
*_all.deb
passen, anstatt aller Paketdateien im angegebenen Pfad. Konfigurationselement:
APT::FTPArchive::Architecture.
APT::FTPArchive::AlwaysStat
-
apt-ftparchive(1)
speichert so viele Metadaten wie möglich in einer Zwischenspeicherdatenbank. Falls Pakete neu kompiliert und/oder neu mit der gleichen Version veröffentlicht werden, führt dies zu Problemen, da die nun veralteten zwischengespeicherten Metadaten, wie Größe und Prüfsumme, benutzt werden. Mit dieser eingeschalteten Option wird dies nicht weiter vorkommen, da geprüft wird, ob die Datei geändert wurde. Beachten Sie, dass diese Option standardmäßig auf »false« gesetzt ist, da es nicht empfohlen wird, mehrere Versionen/Builds eines Pakets mit der gleichen Versionsnummer hochzuladen, so dass theoretisch niemand dieses Probleme haben sollte und all diese zusätzlichen Prüfungen daher nutzlos sind.
APT::FTPArchive::LongDescription
-
Diese Konfigurationsoption ist standardmäßig »true« und sollte nur auf »false« gesetzt werden, wenn das mit
apt-ftparchive(1)
generierte Archiv außerdem
Translation-Dateien bereitstellt. Beachten Sie, dass die Hauptdatei
Translation-en
nur durch den Befehl »generate« erstellt werden kann.
-h, --help
-
eine kurze Aufrufzusammenfassung zeigen
-v, --version
-
die Version des Programms anzeigen
-c, --config-file
-
Konfigurationsdatei; hiermit wird die zu verwendende Konfigurationssdatei angegeben. Das Programm wird die Vorgabe-Konfigurationsdatei und dann diese Konfigurationsdatei lesen. Falls Konfigurationseinstellungen vor der Vorgabe-Konfiguration ausgewertet werden müssen, geben Sie eine Datei in der Umgebungsvariable
APT_CONFIG
an. Lesen Sie
apt.conf(5), um Syntax-Informationen zu erhalten.
-o, --option
-
eine Konfigurationsoption setzen; hiermit wird eine beliebige Konfigurationsoption gesetzt. Die Syntax lautet
-o Foo::Bar=bar.
-o
und
--option
kann mehrfach benutzt werden, um verschiedene Optionen zu setzen.
BEISPIELE
Um eine gepackte Paketdatei für ein Verzeichnis zu erstellen, das Binärpakete (.deb) enthält:
-
apt-ftparchive packages Verzeichnis | gzip > Packages.gz
SIEHE AUCH
apt.conf(5)
DIAGNOSE
apt-ftparchive
gibt bei normalen Aktionen 0 zurück, dezimal 100 bei Fehlern.
FEHLER
m[blue]APT-Fehlerseitem[][1]. Wenn Sie einen Fehler in APT berichten möchten, lesen Sie bitte
/usr/share/doc/debian/bug-reporting.txt
oder den
reportbug(1)-Befehl. Verfassen Sie Fehlerberichte bitte auf Englisch.
ÜBERSETZUNG
Die deutsche Übersetzung wurde 2009 von Chris Leick
<c.leick@vollbio.de>
in Zusammenarbeit mit dem deutschen l10n-Team von Debian
<debian-l10n-german@lists.debian.org>
angefertigt.
Beachten Sie, dass diese Übersetzung Teile enthalten kann, die nicht übersetzt wurden. Dies ist so, damit kein Inhalt verloren geht, wenn die Übersetzung hinter dem Originalinhalt hinterherhängt.
AUTOREN
Jason Gunthorpe
-
APT-Team
-
FUßNOTEN
- 1.
-
APT-Fehlerseite
-
http://bugs.debian.org/src:apt