NAME
apt-ftparchive - Hilfsprogramm zum Generieren von IndexdateienÜBERSICHT
apt-ftparchive
[ -dsq] [--md5] [--delink] [--readonly]
[--contents] [ --arch architecture]
[-o= Konfigurationszeichenkette]
[-c=Konfigurationsdatei] {packages
Pfad [
Außer-Kraft-Setzdatei [Pfadpräfix]] |
sources
Pfad [Außer-Kraft-Setzdatei [
Pfadpräfix]] | contents Pfad |
release Pfad | generate
Konfigurationsdatei Abschnitt... |
clean Konfigurationsdatei | {-v | --version} |
{-h | --help}}
BESCHREIBUNG
apt-ftparchive 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. packagesDer »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 beschriebenDir-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. ArchiveDirgibt 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::Compresssetzt 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. MaxContentsChangesetzt 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/bookworm. 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
Dies ist eine durch Leerzeichen getrennte
Liste der Abschnitte, die unter der Distribution erscheint, typischerweise
etwas wie main contrib non-free non-free-firmware
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. Packagessetzt 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
neu
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, --sha512erzeugt 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
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
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
APT-Fehlerseite[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 <[email protected]> in Zusammenarbeit mit dem deutschen l10n-Team von Debian <[email protected]> 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-TeamFUßNOTEN
- 1.
- APT-Fehlerseite
29 Januar 2023 | APT 2.6.1 |