is een gereedschap voor de commandoregel dat de indexbestanden maakt die APT gebruikt om toegang te hebben tot een distributiebron. De indexbestanden moeten aangemaakt worden op de site van oorsprong en gebaseerd zijn op de inhoud van die site.
apt-ftparchive
is een uitbreiding van het programma
dpkg-scanpackages(1)
dat diens volledige functionaliteit incorporeert via het commando
packages. Het bevat ook een programma,
contents, voor het aanmaken van contents-bestanden en degelijk ontwikkelde middelen om dit aanmaakproces voor een volledig archief door een script te laten uitvoeren.
apt-ftparchive
kan uit zichzelf gebruik maken van binaire databases om de inhoud van een .deb-bestand te bufferen en het is van geen enkel extern programma afhankelijk met uitzondering van
gzip(1). Wanneer een volledige aanmaak gebeurt, zal het automatisch een controle uitvoeren op gewijzigde bestanden en de gewenste gecomprimeerde uitvoerbestanden bouwen.
Tenzij de optie
-h, of
--help
opgegeven werd, moet een van de onderstaande commando's gebruikt worden.
packages
-
Het commando packages maakt vertrekkend vanuit een mappenboom een package-bestand aan. Het begint bij de opgegeven map en doorzoekt de onderliggende mappen op de aanwezigheid van .deb-bestanden en schrijft voor elk ervan een pakketfiche weg naar de standaarduitvoer. Dit commando is bij benadering analoog aan
dpkg-scanpackages(1).
De optie
--db
kan gebruikt worden om een bufferende binaire database op te geven.
sources
-
Het commando
sources
maakt vertrekkend vanuit een mappenboom een indexbestand over broncodebestanden aan. Het begint bij de opgegeven map en doorzoekt de onderliggende mappen op de aanwezigheid van .dsc-bestanden en schrijft voor elk ervan een broncodebestandsfiche weg naar de standaarduitvoer. Dit commando is bij benadering analoog aan
dpkg-scansources(1).
Indien een override-bestand opgegeven werd, zal gezocht worden naar een broncode-override-bestand met de extensie .src. De optie --source-override kan gebruikt worden om op te geven dat een ander broncode-override-bestand gebruikt zal worden.
contents
-
Het commando
contents
maakt voor een mappenboom een contents-bestand aan. Het begint bij de opgegeven map en doorzoekt de onderliggende mappen op de aanwezigheid van .deb-bestanden en leest van elk bestand de bestandenlijst. Daarna sorteert het de lijst van bestanden en schrijft die gekoppeld aan een pakket weg naar de standaarduitvoer. Mappen worden niet naar standaarduitvoer geschreven. Indien hetzelfde bestand aan meerdere pakketten toebehoort, worden in de uitvoer de pakketten door een komma gescheiden.
De optie
--db
kan gebruikt worden om een bufferende binaire database op te geven.
release
-
Het commando
release
maakt voor een mappenboom een Release-bestand aan. Het begint bij de opgegeven map en zoekt daar en in de onderliggende mappen standaard naar niet-gecomprimeerde en gecomprimeerde
Packages-,
Sources,
Contents,
Components
en
icons-bestanden, alsook naar
Release-,
Index- en
md5sum.txt-bestanden. (APT::FTPArchive::Release::Default-Patterns). Bijkomende bestandsnaampatronen kunnen toegevoegd worden door ze op te sommen inAPT::FTPArchive::Release::Patterns. Het commando schrijft vervolgens naar de standaarduitvoer eenRelease-bestand dat (standaard) voor elk bestand een MD5-, SHA1-, SHA256 en SHA512-verzameling bevat.
De waarden voor de bijkomende velden met metagegevens in het Release-bestand worden ontleend aan de overeenkomstige variabelen uit
APT::FTPArchive::Release, bijvoorbeeld
APT::FTPArchive::Release::Origin. De ondersteunde velden zijn:
Origin,
Label,
Suite,
Version,
Codename,
Date,
NotAutomatic,
ButAutomaticUpgrades,
Acquire-By-Hash,
Valid-Until,
Signed-By,
Architectures,
Components
en
Description.
generate
-
Het commando
generate
werd ontworpen voor gebruik in een cron-script en bouwt indexen volgens het opgegeven configuratiebestand. De configuratietaal voorziet in een flexibel instrument om op te geven welke indexbestanden over welke mappen gemaakt moeten worden en ze voorziet ook in een eenvoudig instrument voor het onderhoud van de vereiste instellingen.
clean
-
Het commando
clean
schoont de door het opgegeven configuratiebestand gebruikte gegevensbestanden op door er de niet langer gebruikte fiches uit te verwijderen.
DE CONFIGURATIE VAN HET GENERATE-COMMANDO
Het commando
generate
gebruikt een configuratiebestand met de beschrijving van de archieven die gegenereerd moeten worden. Het gebruikt het typische ISC configuratieformaat dat men aantreft in ISC-gereedschap zoals bind 8 en dhcpd.
apt.conf(5)
bevat een beschrijving van de syntaxis. Noteer dat de configuratie van generate per sectie ontleed wordt, maar dat
apt.conf(5)
per boom ontleed wordt. Dit heeft enkel invloed op de manier waarop met het bereiklabel omgesprongen wordt.
De configuratie van generate bevat vier aparte secties die hierna besproken worden.
De sectie Dir
De sectie
Dir
definieert de standaardmappen waarin men de bestanden kan lokaliseren die nodig zijn tijdens het maakproces. Deze mappen worden voorafgegaan door bepaalde relatieve paden die in de volgende secties gedefinieerd worden om zo een volledig en absoluut pad te bekomen.
ArchiveDir
-
Geeft de basismap van het FTP-archief op. In een standaardconfiguratie van Debian is dat de map die de nodes
ls-LR
en dist bevatten.
OverrideDir
-
Geeft de locatie van de override-bestanden op.
CacheDir
-
Geeft de locatie van de cachebestanden op.
FileListDir
-
Geeft de locatie van de bestandenlijst-bestanden op, indien de instelling
FileList
hieronder gebruikt wordt.
De sectie Default
De sectie
Default
geeft standaardwaarden en instellingen op die de werking van de generator besturen. Andere secties kunnen deze standaardwaarden overschrijven met een sectiegebonden instelling.
Packages::Compress
-
Stelt het standaard compressieschema in dat voor de pakketindexbestanden gebruikt wordt. Het is een tekenreeks die bestaat uit een door spaties gescheiden lijst van minstens een van de compressieprogramma's die via het configuratiebereik
APT::Compressor
geconfigureerd zijn. Voor alle compressieschema's is de standaardinstelling '. gzip'.
Packages::Extensions
-
Stelt in wat de lijst is van bestandsextensies die er standaard op wijzen dat het pakketbestanden betreft. Dit is standaard ingesteld op '.deb'.
Sources::Compress
-
Dit is gelijkaardig aan
Packages::Compress, behalve dat het de compressie van de Sources-bestanden regelt.
Sources::Extensions
-
Stelt in wat de lijst is van bestandsextensies die er standaard op wijzen dat het broncodebestanden betreft. Dit is standaard ingesteld op '.dsc'.
Contents::Compress
-
Dit is gelijkaardig aan
Packages::Compress, behalve dat het de compressie van de Contents-bestanden regelt.
Translation::Compress
-
Dit is gelijkaardig aan
Packages::Compress, behalve dat het de compressie van het Translation-en hoofdbestand regelt.
DeLinkLimit
-
Geeft het aantal kilobytes op dat per doorloop ontkoppeld (en vervangen door harde koppelingen) moet worden. Dit wordt gebruikt in samenhang met de sectiegebonden instelling
External-Links.
FileMode
-
Stelt de modus in van alle aangemaakte indexbestanden. Standaard is dit ingesteld op 0644. Alle indexbestanden worden op deze modus ingesteld ongeacht het umask.
LongDescription
-
Stelt in of de gedetailleerde beschrijvingen moeten opgenomen worden in het
Packages-bestand of afgesplitst en in een
Translation-en
hoofdbestand moeten geplaatst worden.
De sectie TreeDefault
Stelt standaarden in die specifiek zijn voor de secties
Tree. Al deze variabelen zijn substitutievariabelen waarbij de tekenreeksen $(DIST), $(SECTION) en $(ARCH) vervangen worden door hun respectieve waarden.
MaxContentsChange
-
Stelt in voor welk aantal kilobytes er iedere dag contents-bestanden gegenereerd worden. Contents-bestanden komen een na een aan de beurt, zodat ze over een periode van een aantal dagen allemaal opnieuw gebouwd worden.
ContentsAge
-
Regelt het aantal dagen dat een contents-bestand mag gebruikt worden zonder dat het gewijzigd werd. Indien die limiet overschreden wordt, zal het mtime van het contents-bestand bijgewerkt worden. Een dergelijke situatie kan zich voordoen als het pakketbestand op zo een manier gewijzigd wordt dat het niet resulteert in een nieuw contents-bestand [bijvoorbeeld een wijziging aan override]. Uitstel is toegelaten als gehoopt mag worden dat nieuwe .deb-bestanden geïnstalleerd zullen worden wat hoe dan ook een nieuw contents-bestand vereist. De standaard is 10, waarbij de eenheden in dagen uitgedrukt worden.
Directory
-
Stelt de basis van de .deb-mappenboom in. Standaard is dat
$(DIST)/$(SECTION)/binary-$(ARCH)/
SrcDirectory
-
Stelt de basis in van de mappenboom van broncodepakketten. Standaard is dat
$(DIST)/$(SECTION)/source/
Packages
-
Stelt in waar het Packages-bestand geschreven wordt. Standaard is dat
$(DIST)/$(SECTION)/binary-$(ARCH)/Packages
Sources
-
Stelt in waar het Sources-bestand geschreven wordt. Standaard is dat
$(DIST)/$(SECTION)/source/Sources
Translation
-
Stelt in waar het hoofdbestand Translation-en geschreven wordt met daarin de uitgebreide beschrijvingen in het geval die niet in het bestand Packages opgenomen werden. De standaard is
$(DIST)/$(SECTION)/i18n/Translation-en
InternalPrefix
-
Stelt het pad-prefix in dat regelt wanneer een symbolische koppeling als een interne en niet als een externe koppeling beschouwd moet worden. De standaard is
$(DIST)/$(SECTION)/
Contents
-
Stelt in waar het Contents-bestand geschreven wordt. De standaard is
$(DIST)/$(SECTION)/Contents-$(ARCH). Indien deze instelling ertoe leidt dat meerdere Packages-bestanden horen bij een enkel Contents-bestand (wat standaard het geval is), dan zal
apt-ftparchive
deze pakketbestanden automatisch tot een geheel integreren.
Contents::Header
-
Stelt het koptekstbestand in dat aan het begin van het aangemaakte contents-bestand moet komen.
BinCacheDB
-
Stelt de binaire database in om als cache te dienen voor deze sectie. Meerdere secties kunnen gebruik maken van dezelfde database.
FileList
-
Stelt in dat
apt-ftparchive
de lijst van bestanden moet halen uit het opgegeven bestand en niet moet opmaken aan de hand van het doorlopen van de mappenboom. De archiefmap wordt als prefix aan relatieve bestandsnamen toegevoegd.
SourceFileList
-
Stelt in dat
apt-ftparchive
de lijst van bestanden moet halen uit het opgegeven bestand en niet moet opmaken aan de hand van het doorlopen van de mappenboom. De archiefmap wordt als prefix aan relatieve bestandsnamen toegevoegd. Dit wordt gebruikt bij het verwerken van broncode-indexen.
De sectie Tree
De sectie
Tree
definieert een standaard bestandsboom voor Debian die bestaat uit een basismap met daarin dan meerdere secties en binnen elke sessie tenslotte meerdere architecturen. Het exacte pad dat gebruikt wordt, wordt gedefinieerd door de substitutievariabele
Directory.
De sectie
Tree
werkt met een bereiklabel dat de variabele
$(DIST)
instelt en de basis van de boomstructuur definieert (vooraan aan het pad wordt
ArchiveDir
toegevoegd). Doorgaans is dat een instelling zoals
dists/buster.
Alle in de sectie
TreeDefault
gedefinieerde instellingen kunnen ook in een
Tree-sectie gebruikt worden evenals drie nieuwe variabelen.
Als
apt-ftparchive
een
Tree-sectie verwerkt, voert het een operatie uit die vergelijkbaar is met:
-
for i in Sections do
for j in Architectures do
Generate for DIST=scope SECTION=i ARCH=j
Sections
-
Dit is een door spaties gescheiden lijst van secties die onder de distributie te vinden zijn. Doorgaans is dat iets zoals
main contrib non-free
Architectures
-
Dit is een met spaties gescheiden lijst van alle architecturen die voorkomen onder de sectie waarin gezocht wordt. De bijzondere architectuur 'source' wordt gebruikt om aan te geven dat deze boomstructuur een archief met broncode bevat. De architectuur 'all' signaleert dat architectuurspecifieke bestanden zoals
Packages, niet telkens in elk bestand informatie moeten opnemen over pakketten van het architectuurtype
all, aangezien die te vinden is in een specifiek bestand.
LongDescription
-
Stelt in of de gedetailleerde beschrijvingen moeten opgenomen worden in het
Packages-bestand of afgesplitst en in een
Translation-en
hoofdbestand moeten geplaatst worden.
BinOverride
-
Stelt het binaire override-bestand in. Het override-bestand bevat informatie over sectie, prioriteit en het adres van de onderhouder.
SrcOverride
-
Stelt het override-bestand van de broncode in. Het override-bestand bevat informatie over de sectie.
ExtraOverride
-
Stelt het binaire extra override-bestand in.
SrcExtraOverride
-
Stelt het extra override-bestand van de broncode in.
De sectie BinDirectory
De sectie
bindirectory
definieert een binaire mappenboom zonder bijzondere structuur. Het bereiklabel specificeert de locatie van de binaire map en de instellingen zijn gelijkaardig aan die van de sectie
Tree
zonder substitutievariabelen of instellingen van het type
SectionArchitecture.
Packages
-
Stelt in waar het Packages-bestand aangemaakt wordt.
Sources
-
Stelt in waar het Sources-bestand aangemaakt wordt. Er is minstens een bestand
Packages
of
Sources
vereist.
Contents
-
Stelt in waar het Contents-bestand aangemaakt wordt (optioneel).
BinOverride
-
Stelt het binaire override-bestand in.
SrcOverride
-
Stelt het override-bestand voor de broncode in.
ExtraOverride
-
Stelt het binaire extra override-bestand in.
SrcExtraOverride
-
Stelt het extra override-bestand van de broncode in.
BinCacheDB
-
Stelt de cache database in.
PathPrefix
-
Voegt een pad toe aan al de paden van de uitvoer.
FileList, SourceFileList
-
Specificeert het bestand met de bestandslijst.
HET BINAIRE OVERRIDE-BESTAND
Het binaire override-bestand is volledig compatibel met
dpkg-scanpackages(1). Het bevat vier door spaties gescheiden velden. Het eerste veld bevat de pakketnaam, het tweede bevat de prioriteit die aan dat pakket gegeven moet worden, het derde bevat de sectie waarin dat pakket geplaatst moet worden en het laatste veld is voorbehouden voor het opgeven van een vervangende onderhouder.
De algemene vorm van het onderhouder-veld is:
-
oude [// ouden]* => nieuwe
, of gewoon
-
nieuwe
De eerste vorm laat toe om een lijst van oude e-mailadressen, van elkaar gescheiden door een dubbele slash, op te geven. Indien een ervan aangetroffen wordt, dan zal nieuw als de nieuwe waarde voor het onderhouder-veld gebruikt worden. De tweede vorm vervangt onvoorwaardelijk de inhoud van het onderhouder-veld.
HET OVERRIDE-BESTAND VOOR BRONCODE
Het override-bestand voor broncode is volledig compatibel met
dpkg-scansources(1). Het bestaat uit twee velden die van elkaar gescheiden worden door een spatie. Het eerste veld bevat de naam van het broncodepakket en het tweede de sectie waartoe het moet behoren.
HET EXTRA OVERRIDE-BESTAND
Het extra override-bestand maakt het mogelijk om gelijk welk arbitrair label toe te voegen of te vervangen in de uitvoer. Het bestaat uit drie kolommen. In de eerste staat het pakket vermeld, in de tweede het label en de rest van de regel bevat de nieuwe waarde die eraan toegekend wordt.
OPTIES
Alle commandoregelopties kunnen via het configuratiebestand ingesteld worden. de omschrijving geeft de in te stellen configuratieoptie op. Bij booleaanse opties kunt u instellingen uit het configuratiebestand overschrijven door iets te gebruiken als
-f-,
--no-f,
-f=no
en meerdere andere variaties.
--md5, --sha1, --sha256, --sha512
-
De vermelde controlesom genereren. Standaard staan deze opties aan. Indien ze uitgezet worden, dan zal het aangemaakte indexbestand zo mogelijk geen velden voor de controlesom bevatten. Configuratie-items:
APT::FTPArchive::Checksum
en
APT::FTPArchive::Index::Checksum
waarbij
Index
kan bestaan uit
Packages,
Sources
of
Release
en
Checksum
kan bestaan uit
MD5,
SHA1,
SHA256
of
SHA512.
-d, --db
-
Een bufferende binaire database gebruiken. Dit heeft geen invloed op het commando generate. Configuratie-item:
APT::FTPArchive::DB.
-q, --quiet
-
Stille modus. Door het weglaten van de voortgangsindicatie produceert dit uitvoer die geschikt is om opgeslagen te worden in een logbestand. Meer q's, met een maximum van 2, resulteren in een verhoogde stille modus. U kunt ook
-q=#
gebruiken om het niveau van de stille modus in te stellen en op die manier het configuratiebestand te overschrijven. Configuratie-item:
quiet.
--delink
-
Ontkoppelingen uitvoeren. Indien de instelling
External-Links
gebruikt wordt, dan maakt deze optie het eigenlijk mogelijk om de bestanden te ontkoppelen. Standaard staat dit aangezet en het kan uitgezet worden met
--no-delink. Configuratie-item:
APT::FTPArchive::DeLinkAct.
--contents
-
Het aanmaken van het contents-bestand uitvoeren. Indien deze optie aangezet wordt en de pakketindexen gegenereerd worden met een bufferende database, dan zal ook de bestandslijst geëxtraheerd worden en voor later gebruik in de database opgeslagen worden. Als het commando generate gebruikt wordt, laat deze optie ook toe om Contents-bestanden aan te maken. Standaard staat dit aangezet. Configuratie-item:
APT::FTPArchive::Contents.
-s, --source-override
-
Het override-bestand voor broncode selecteren om met het commando
sources
te gebruiken. Configuratie-item:
APT::FTPArchive::SourceOverride.
--readonly
-
De bufferende databases alleen lezen maken. Configuration Item:
APT::FTPArchive::ReadOnlyDB.
-a, --arch
-
Voor de commando's
packages
en
contents
enkel pakketbestanden toelaten die overeenkomen met
*_arch.deb
of
*_all.deb
in plaats van alle pakketbestanden in het opgegeven pad. Configuratie-item:
APT::FTPArchive::Architecture.
APT::FTPArchive::AlwaysStat
-
apt-ftparchive(1)
buffert zoveel mogelijk metadata in een bufferende database. Indien er pakketten opnieuw gebouwd en/of uitgebracht worden met dezelfde versie, zal dit tot problemen leiden, aangezien de dan verouderde maar in de buffer aanwezige metadata, zoals grootte en controlesommen, gebruikt zullen worden. Indien deze optie aangezet wordt, zal dit niet meer gebeuren, vermits gecontroleerd zal worden of het bestand gewijzigd werd. Noteer dat deze optie standaard ingesteld staat op "false" (uit), omdat het niet aangewezen is om meerdere versies/bouwversies van een pakket met hetzelfde versienummer te uploaden. In theorie zal dus niemand met deze problemen geconfronteerd worden en daarom zijn al deze extra controles nutteloos.
APT::FTPArchive::LongDescription
-
Deze configuratieoptie staat standaard ingesteld op "true" (aan) en zou enkel moeten ingesteld worden op
"false"
(uit) indien het archief dat met
apt-ftparchive(1)
gegenereerd wordt ook
Translation-bestanden bevat. Merk op dat het hoofdbestand
Translation-en
enkel aangemaakt kan worden via het commando generate.
-h, --help
-
Een korte samenvatting van het gebruik weergeven.
-v, --version
-
Het versienummer van het programma weergeven.
-c, --config-file
-
Configuratiebestand; Een te gebruiken configuratiebestand opgeven. Het programma zal het standaard configuratiebestand inlezen en nadien dit configuratiebestand. Als configuratie-instellingen opgegeven moeten worden vooraleer de standaard configuratiebestanden verwerkt worden, geef dan een bestand op met de omgevingsvariabele
APT_CONFIG. Raadpleeg
apt.conf(5)
voor informatie over de syntaxis.
-o, --option
-
Een configuratieoptie instellen; Dit stelt een willekeurige configuratieoptie in. De syntaxis is
-o Foo::Bar=bar.
-o
en
--option
kunnen meermaals gebruikt worden om verschillende opties in te stellen.
VOORBEELDEN
Om voor een map met binaire pakketten (.deb) een gecomprimeerd Packages-bestand aan te maken:
-
apt-ftparchive pakketten map | gzip > Packages.gz
ZIE OOK
apt.conf(5)
DIAGNOSTIEK
apt-ftparchive
geeft de terugkeerwaarde nul bij een normaal verlopen operatie, het decimaal getal 100 in geval van een fout.
BUGS
m[blue]APT bugpaginam[][1]. Indien u een bug in APT wilt rapporteren, raadpleeg dan
/usr/share/doc/debian/bug-reporting.txt
of het
reportbug(1)
commando.
VERTALING
De Nederlandse vertaling werd in 2015 gemaakt door Frans Spiesschaert
<Frans.Spiesschaert@yucom.be>, in samenwerking met het Debian Dutch l10n Team
<debian-l10n-dutch@lists.debian.org>.
Merk op dat de vertaling van dit document nog onvertaalde delen kan bevatten. Dit is intentioneel om te vermijden dat inhoud verloren zou gaan door een vertaling die achterop loopt op het origineel.
AUTEURS
Jason Gunthorpe
-
APT-team
-
OPMERKINGEN
- 1.
-
APT bugpagina
-
http://bugs.debian.org/src:apt