apt-ftparchive - Referenzhandbuch, Optionen, Befehlsbeispiele


NAME

apt-ftparchive - Dienstprogramm zum Generieren von Indexdateien

ZUSAMMENFASSUNG

apt-ftparchive [-dsq] [--md5] [--delink] [--readonly] [--contents] [--arch architecture] [-o=config_string] [-c=config_file] {packages path [override-file [pathprefix]] | sources path [override-file [pathprefix]] | contents path | release path | generate config_file section... | clean config_file | {-v | --version} | {-h | --help}}

BESCHREIBUNG

apt-ftparchive ist das Befehlszeilentool, das die Indexdateien generiert, die APT für den Zugriff auf eine Distributionsquelle verwendet. Die Indexdateien sollten auf der Ursprungssite basierend auf dem Inhalt dieser Site generiert werden.

apt-ftparchive ist eine Obermenge des Programms dpkg-scanpackages(1), das seine gesamte Funktionalität über den Paketbefehl einbindet. Es enthält außerdem einen Inhaltsdateigenerator, Inhalte und eine ausgefeilte Möglichkeit, den Generierungsprozess für ein vollständiges Archiv zu skripten.

Intern kann apt-ftparchive Binärdatenbanken nutzen, um den Inhalt einer .deb-Datei zwischenzuspeichern, und ist außer gzip(1) nicht auf externe Programme angewiesen. Bei einer vollständigen Generierung werden automatisch Dateiänderungsprüfungen durchgeführt und die gewünschten komprimierten Ausgabedateien erstellt.

Sofern die Option -h oder --help nicht angegeben ist, muss einer der folgenden Befehle vorhanden sein.

packages

Der Befehl „packages“ generiert eine Paketdatei aus einem Verzeichnisbaum. Es nimmt das angegebene Verzeichnis und durchsucht es rekursiv nach .deb-Dateien und gibt für jede einen Paketdatensatz an stdout aus. Dieser Befehl entspricht ungefähr dpkg-scanpackages(1).

Mit der Option --db kann eine binäre Caching-DB angegeben werden.

sources

Der Befehl „sources“ generiert eine Quellindexdatei aus einem Verzeichnisbaum. Es nimmt das angegebene Verzeichnis und durchsucht es rekursiv nach .dsc-Dateien und gibt für jede einen Quelldatensatz an stdout aus. Dieser Befehl entspricht ungefähr dpkg-scansources(1).

Wenn eine Override-Datei angegeben ist, wird nach einer Quell-Override-Datei mit der Erweiterung .src gesucht. Mit der Option --source-override kann die zu verwendende Quell-Override-Datei geändert werden.

contents

Der Befehl content generiert eine Inhaltsdatei aus einem Verzeichnisbaum. Es nimmt das angegebene Verzeichnis, durchsucht es rekursiv nach .deb-Dateien und liest die Dateiliste aus jeder Datei. Anschließend wird die Liste der mit den Paketen übereinstimmenden Dateien sortiert und in stdout geschrieben. Verzeichnisse werden nicht in die Ausgabe geschrieben. Wenn mehrere Pakete dieselbe Datei besitzen, werden die einzelnen Pakete in der Ausgabe durch ein Komma getrennt.

Mit der Option --db kann eine binäre Caching-DB angegeben werden.

release

Der Release-Befehl generiert eine Release-Datei aus einem Verzeichnisbaum. Es durchsucht das angegebene Verzeichnis standardmäßig rekursiv nach unkomprimierten und komprimierten Paketen, Quellen, Inhalten, Komponenten und Symboldateien sowie nach Release-, Index- und md5sum.txt-Dateien (APT::FTPArchive::Release::Default-Patterns). Zusätzliche Dateinamenmuster können hinzugefügt werden, indem sie in APT::FTPArchive::Release::Patterns aufgelistet werden. Anschließend wird eine Release-Datei in stdout geschrieben, die (standardmäßig) einen MD5-, SHA1-, SHA256- und SHA512-Digest für jede Datei enthält.

Werte für die zusätzlichen 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 und Description.

generate

Der Befehl „generate“ ist so konzipiert, dass er über ein Cron-Skript ausgeführt werden kann und Indizes gemäß der angegebenen Konfigurationsdatei erstellt. Die Konfigurationssprache bietet eine flexible Möglichkeit, anzugeben, welche Indexdateien aus welchen Verzeichnissen erstellt werden, und bietet außerdem eine einfache Möglichkeit, die erforderlichen Einstellungen beizubehalten.

clean

Der Befehl „clean“ bereinigt die von der angegebenen Konfigurationsdatei verwendeten Datenbanken, indem er alle nicht mehr benötigten Datensätze entfernt.

DIE GENERATE-KONFIGURATION

Der Befehl „generate“ verwendet eine Konfigurationsdatei, um die Archive zu beschreiben, die generiert werden sollen. Es folgt dem typischen ISC-Konfigurationsformat, wie es in ISC-Tools wie bind 8 und dhcpd zu sehen ist. apt.conf(5) enthält eine Beschreibung der Syntax. Beachten Sie, dass die generierte Konfiguration abschnittsweise analysiert wird, apt.conf(5) jedoch baumartig. Dies wirkt sich nur darauf aus, wie mit dem Scope-Tag umgegangen wird.

Die Generierungskonfiguration besteht aus vier separaten Abschnitten, die jeweils im Folgenden beschrieben werden.

Dir-Sektion

Der Abschnitt „Dir“ definiert die Standardverzeichnisse, die zum Auffinden der während des Generierungsprozesses erforderlichen Dateien erforderlich sind. Diesen Verzeichnissen werden bestimmte relative Pfade vorangestellt, die in späteren Abschnitten definiert werden, um einen vollständigen absoluten Pfad zu erstellen.

ArchiveDir

Gibt das Stammverzeichnis des FTP-Archivs an. In einer Standard-Debian-Konfiguration ist dies das Verzeichnis, das die ls-LR- und dist-Knoten enthält.

OverrideDir

Gibt den Speicherort der Überschreibungsdateien an.

CacheDir

Gibt den Speicherort der Cache-Dateien an.

FileListDir

Gibt den Speicherort der Dateilistendateien an, wenn unten die FileList-Einstellung verwendet wird.

Standardabschnitt

Der Abschnitt „Standard“ gibt Standardwerte und Einstellungen an, die den Betrieb des Generators steuern. Andere Abschnitte können diese Standardeinstellungen durch eine abschnittsweise Einstellung überschreiben.

Packages::Compress

Legt die Standardkomprimierungsschemata fest, die für die Paketindexdateien verwendet werden sollen. Es handelt sich um eine Zeichenfolge, die eine durch Leerzeichen getrennte Liste von mindestens einem der Kompressoren enthält, die über den Konfigurationsbereich APT::Compressor konfiguriert wurden. Der Standardwert für alle Komprimierungsschemata ist . gzip.

Packages::Extensions

Legt die Standardliste der Dateierweiterungen fest, bei denen es sich um Paketdateien handelt. Dies ist standardmäßig .deb.

Sources::Compress

Dies ähnelt Packages::Compress, außer dass es die Komprimierung für die Quelldateien steuert.

Sources::Extensions

Legt die Standardliste der Dateierweiterungen fest, bei denen es sich um Quelldateien handelt. Der Standardwert ist .dsc.

Contents::Compress

Dies ähnelt Packages::Compress, außer dass es die Komprimierung für die Inhaltsdateien steuert.

Translation::Compress

Dies ähnelt Packages::Compress, außer dass es die Komprimierung für die Translation-en-Masterdatei steuert.

DeLinkLimit

Gibt die Anzahl der Kilobyte an, die pro Lauf aufgehoben (und durch feste Links ersetzt) werden sollen. Dies wird in Verbindung mit der Einstellung „External-Links“ pro Abschnitt verwendet.

FileMode

Gibt den Modus aller erstellten Indexdateien an. Der Standardwert ist 0644. Alle Indexdateien werden unabhängig von der umask auf diesen Modus eingestellt.

LongDescription

Gibt an, ob lange Beschreibungen in die Paketdatei aufgenommen oder in eine Master-Übersetzungsdatei aufgeteilt werden sollen.

TreeDefault-Abschnitt

Legt spezifische Standardwerte für Baumabschnitte fest. Alle diese Variablen sind Substitutionsvariablen und die Zeichenfolgen $ (DIST), $ (SECTION) und $ (ARCH) werden durch ihre jeweiligen Werte ersetzt.

MaxContentsChange

Legt die Anzahl der Kilobyte an Inhaltsdateien fest, die täglich generiert werden. Die Inhaltsdateien werden im Round-Robin-Verfahren verarbeitet, sodass sie über mehrere Tage hinweg alle neu erstellt werden.

ContentsAge

Steuert die Anzahl der Tage, die eine Inhaltsdatei ohne Änderung überprüft werden darf. Wenn dieses Limit überschritten wird, wird die mtime der Inhaltsdatei aktualisiert. Dieser Fall kann auftreten, wenn die Paketdatei so geändert wird, dass keine neue Inhaltsdatei entsteht [z. B. die Bearbeitung überschreiben]. Eine Verzögerung ist zulässig, in der Hoffnung, dass neue .debs installiert werden, was ohnehin eine neue Datei erfordert. Der Standardwert ist 10, die Einheiten sind in Tagen.

Directory

Legt den Anfang des .deb-Verzeichnisbaums fest. Standardmäßig ist $ (DIST)/$ (SECTION)/binary-$ (ARCH)/

SrcDirectory

Legt den Anfang des Verzeichnisbaums des Quellpakets fest. Standardmäßig ist $ (DIST)/$ (SECTION)/source/

Packages

Legt die Ausgabepaketdatei fest. Standardmäßig ist $ (DIST)/$ (SECTION)/binary-$ (ARCH)/Packages

Sources

Legt die Ausgabequellendatei fest. Der Standardwert ist $ (DIST)/$ (SECTION)/source/Sources

Translation

Legt die Ausgabe-Übersetzungs-Masterdatei mit den langen Beschreibungen fest, wenn diese nicht in der Paketdatei enthalten sein sollen. Standardmäßig ist $ (DIST)/$ (SECTION)/i18n/Translation-en

InternalPrefix

Legt das Pfadpräfix fest, das bewirkt, dass ein Symlink als interner Link und nicht als externer Link betrachtet wird. Standardmäßig ist $ (DIST)/$ (SECTION)/

Contents

Legt die Ausgabeinhaltsdatei fest. Der Standardwert ist $ (DIST)/$ (SECTION)/Contents-$ (ARCH). Wenn diese Einstellung dazu führt, dass mehrere Paketdateien einer einzelnen Inhaltsdatei zugeordnet werden (wie es die Standardeinstellung ist), integriert apt-ftparchive diese Paketdateien automatisch zusammen.

Contents::Header

Legt fest, dass die Header-Datei der Inhaltsausgabe vorangestellt wird.

BinCacheDB

Legt die binäre Cache-Datenbank fest, die für diesen Abschnitt verwendet werden soll. Mehrere Abschnitte können dieselbe Datenbank gemeinsam nutzen.

FileList

Gibt an, dass apt-ftparchive die Liste der Dateien aus der angegebenen Datei lesen soll, anstatt den Verzeichnisbaum zu durchsuchen. Relativen Dateinamen wird das Archivverzeichnis vorangestellt.

SourceFileList

Gibt an, dass apt-ftparchive die Liste der Dateien aus der angegebenen Datei lesen soll, anstatt den Verzeichnisbaum zu durchsuchen. Relativen Dateinamen wird das Archivverzeichnis vorangestellt. Dies wird bei der Verarbeitung von Quellindizes verwendet.

Baumabschnitt

Der Abschnitt „Baum“ definiert einen Standard-Debian-Dateibaum, der aus einem Basisverzeichnis, dann mehreren Abschnitten in diesem Basisverzeichnis und schließlich mehreren Architekturen in jedem Abschnitt besteht. Der genaue verwendete Pfad wird durch die Verzeichnissubstitutionsvariable definiert.

Der Abschnitt „Baum“ nimmt ein Bereichs-Tag an, das die Variable $ (DIST) festlegt und die Wurzel des Baums definiert (dem Pfad wird ArchiveDir vorangestellt). Typischerweise ist dies eine Einstellung wie dists/bookworm.

Alle im Abschnitt „TreeDefault“ definierten Einstellungen sowie drei neue Variablen können in einem Abschnitt „Tree“ verwendet werden.

Bei der Verarbeitung eines Baumabschnitts führt apt-ftparchive einen Vorgang aus, der dem folgenden ähnelt:

for i in Sections do 
   for j in Architectures do
      Generate for DIST=scope SECTION=i ARCH=j
     
Sections

Dies ist eine durch Leerzeichen getrennte Liste von Abschnitten, die unter der Distribution erscheinen; Typischerweise ist dies so etwas wie „main contrib non-free non-free-firmware“.

Architectures

Dies ist eine durch Leerzeichen getrennte Liste aller Architekturen, die im Suchbereich angezeigt werden. Die spezielle Architekturquelle wird verwendet, um anzuzeigen, dass dieser Baum über ein Quellarchiv verfügt. Die Architektur weist darauf hin, dass architekturspezifische Dateien wie Pakete keine Informationen über die Architektur aller Pakete in allen Dateien enthalten sollten, da diese in einer dedizierten Datei verfügbar sind.

LongDescription

Gibt an, ob lange Beschreibungen in die Paketdatei aufgenommen oder in eine Master-Übersetzungsdatei aufgeteilt werden sollen.

BinOverride

Legt die binäre Überschreibungsdatei fest. Die Override-Datei enthält Abschnitts-, Prioritäts- und Betreuer-Adressinformationen.

SrcOverride

Legt die Quellüberschreibungsdatei fest. Die Override-Datei enthält Abschnittsinformationen.

ExtraOverride

Legt die binäre zusätzliche Override-Datei fest.

SrcExtraOverride

Legt die zusätzliche Quell-Override-Datei fest.

BinDirectory-Abschnitt

Der Abschnitt bindirectory definiert einen binären Verzeichnisbaum ohne spezielle Struktur. Das Scope-Tag gibt den Speicherort des Binärverzeichnisses an und die Einstellungen ähneln denen des Abschnitts „Tree“, ohne Ersatzvariablen oder SectionArchitecture-Einstellungen.

Packages

Legt die Ausgabe der Paketdatei fest.

Sources

Legt die Ausgabe der Quelldatei fest. Mindestens eines der Pakete oder Quellen ist erforderlich.

Contents

Legt die Ausgabe der Inhaltsdatei fest (optional).

BinOverride

Legt die binäre Überschreibungsdatei fest.

SrcOverride

Legt die Quellüberschreibungsdatei fest.

ExtraOverride

Legt die binäre zusätzliche Override-Datei fest.

SrcExtraOverride

Legt die zusätzliche Quell-Override-Datei fest.

BinCacheDB

Legt die Cache-Datenbank fest.

PathPrefix

Fügt allen Ausgabepfaden einen Pfad hinzu.

FileList, SourceFileList

Gibt die Dateilistendatei an.

DIE BINÄRE OVERRIDE-DATEI

Die binäre Überschreibungsdatei ist vollständig kompatibel mit dpkg-scanpackages(1). Es enthält vier durch Leerzeichen getrennte Felder. Das erste Feld ist der Paketname, das zweite ist die Priorität, zu der dieses Paket gezwungen werden soll, das dritte ist der Abschnitt, zu dem dieses Paket gezwungen werden soll, und das letzte Feld ist das Betreuer-Permutationsfeld.

Die allgemeine Form des Maintainer-Feldes ist:

old [// oldn]* => new

oder einfach,

new

Das erste Formular ermöglicht die Angabe einer durch Doppelschrägstriche getrennten Liste alter E-Mail-Adressen. Wenn eines davon gefunden wird, wird das Feld „maintainer“ durch „new“ ersetzt. Die zweite Form ersetzt bedingungslos das Maintainer-Feld.

DIE SOURCE-OVERRIDE-DATEI

Die Quellüberschreibungsdatei ist vollständig kompatibel mit dpkg-scansources(1). Es enthält zwei durch Leerzeichen getrennte Felder. Das erste Feld ist der Name des Quellpakets, das zweite ist der Abschnitt, in dem es zugewiesen werden soll.

DIE EXTRA-OVERRIDE-DATEI

Die zusätzliche Override-Datei ermöglicht das Hinzufügen oder Ersetzen beliebiger Tags in der Ausgabe. Es besteht aus drei Spalten: Die erste ist das Paket, die zweite das Tag und der Rest der Zeile ist der neue Wert.

OPTIONEN

Alle Befehlszeilenoptionen können mithilfe der Konfigurationsdatei festgelegt werden. Die Beschreibungen geben die festzulegende Konfigurationsoption an. Für boolesche Optionen können Sie die Konfigurationsdatei überschreiben, indem Sie etwas wie -f-,--no-f, -f=no oder mehrere verwenden andere Variationen.

--md5, --sha1, --sha256, --sha512

Generieren Sie die angegebene Prüfsumme. Diese Optionen sind standardmäßig aktiviert. Wenn sie deaktiviert sind, enthalten die generierten Indexdateien nach Möglichkeit keine Prüfsummenfelder. Konfigurationselemente: APT::FTPArchive::Checksum und APT::FTPArchive::Index::Checksum wobei Index kann Pakete, Quellen oder Release sein und Prüfsumme kann MD5, SHA1, SHA256 oder SHA512 sein.

-d, --db

Verwenden Sie eine binäre Caching-Datenbank. Dies hat keine Auswirkung auf den Generierungsbefehl. Konfigurationselement: APT::FTPArchive::DB.

-q, --quiet

Ruhig; erzeugt eine Ausgabe, die für die Protokollierung geeignet ist, wobei Fortschrittsanzeigen weggelassen werden. Mehr qs führen zu mehr Ruhe bis zu einem Maximum von 2. Sie können auch -q=# verwenden, um den Ruhepegel festzulegen und die Konfigurationsdatei zu überschreiben. Konfigurationselement: leise.

--delink

Delinking durchführen. Wenn die Einstellung „External-Links“ verwendet wird, ermöglicht diese Option tatsächlich das Aufheben der Verknüpfung der Dateien. Es ist standardmäßig aktiviert und kann mit --no-delink deaktiviert werden. Konfigurationselement: APT::FTPArchive::DeLinkAct.

--contents

Führen Sie die Inhaltsgenerierung durch. Wenn diese Option festgelegt ist und Paketindizes mit einer Cache-Datenbank generiert werden, wird auch die Dateiliste extrahiert und zur späteren Verwendung in der Datenbank gespeichert. Bei Verwendung des Befehls „generate“ ermöglicht diese Option auch die Erstellung beliebiger Inhaltsdateien. Die Standardeinstellung ist aktiviert. Konfigurationselement: APT::FTPArchive::Contents.

-s, --source-override

Wählen Sie die Quellüberschreibungsdatei aus, die mit dem Befehl „sources“ verwendet werden soll. Konfigurationselement: APT::FTPArchive::SourceOverride.

--readonly

Machen Sie die Caching-Datenbanken schreibgeschützt. Konfigurationselement: APT::FTPArchive::ReadOnlyDB.

-a, --arch

Akzeptieren Sie in den Paket- und Inhaltsbefehlen nur Paketdateien, die mit *_arch.deb oder *_all.deb übereinstimmen, und nicht alle Paketdateien im angegebenen Pfad. Konfigurationselement: APT::FTPArchive::Architecture.

APT::FTPArchive::AlwaysStat

apt-ftparchive(1) speichert so viele Metadaten wie möglich in einer zwischengespeicherten Datenbank. Wenn Pakete erneut mit derselben Version kompiliert und/oder erneut veröffentlicht werden, führt dies zu Problemen, da die inzwischen veralteten zwischengespeicherten Metadaten wie Größe und Prüfsummen verwendet werden. Wenn diese Option aktiviert ist, passiert dies nicht mehr, da überprüft wird, ob die Datei geändert wurde. Beachten Sie, dass diese Option standardmäßig auf „false“ gesetzt ist, da es nicht empfehlenswert ist, mehrere Versionen/Builds eines Pakets mit derselben Versionsnummer hochzuladen, sodass theoretisch niemand diese Probleme haben wird und daher alle diese zusätzlichen Überprüfungen nutzlos sind.

APT::FTPArchive::LongDescription

Diese Konfigurationsoption ist standardmäßig auf „true“ eingestellt und sollte nur auf „false“ gesetzt werden, wenn das mit apt-ftparchive(1) generierte Archiv auch Übersetzungsdateien bereitstellt. Beachten Sie, dass die Translation-en-Masterdatei nur im Generierungsbefehl erstellt werden kann.

-h, --help

Zeigen Sie eine kurze Nutzungszusammenfassung an.

-v, --version

Zeigt die Programmversion an.

-c, --config-file

Konfigurationsdatei; Geben Sie eine zu verwendende Konfigurationsdatei an. Das Programm liest die Standardkonfigurationsdatei und dann diese Konfigurationsdatei. Wenn Konfigurationseinstellungen festgelegt werden müssen, bevor die Standardkonfigurationsdateien analysiert werden, geben Sie eine Datei mit der Umgebungsvariablen APT_CONFIG an. Syntaxinformationen finden Sie in apt.conf(5).

-o, --option

Legen Sie eine Konfigurationsoption fest. Dadurch wird eine beliebige Konfigurationsoption festgelegt. Die Syntax ist -o Foo::Bar=bar. -o und --option können mehrfach verwendet werden, um verschiedene Optionen festzulegen.

BEISPIELE

So erstellen Sie eine komprimierte Paketdatei für ein Verzeichnis, das Binärpakete (.deb) enthält:

apt-ftparchive packages directory | gzip > Packages.gz

SIEHE AUCH

apt.conf(5)

DIAGNOSE

apt-ftparchive gibt im Normalbetrieb Null zurück, im Fehlerfall den dezimalen Wert 100.

Fehler

APT-Fehlerseite[1]. Wenn Sie einen Fehler in APT melden möchten, lesen Sie bitte /usr/share/doc/debian/bug-reporting.txt oder den Befehl reportbug(1).

AUTOREN

Jason Gunthorpe

APT-Team

ANMERKUNGEN

1. APT-Fehlerseite: http://bugs.debian.org/src:apt