NAME
apt-ftparchive - Hulpprogramma om indexbestanden te maken
SAMENVATTING
apt-ftparchive [-dsq] [--md5] [--delink] [--readonly] [--contents] [--arch architecture] [-o=configuratietekenreeks] [-c=configuratiebestand] {packages pad [override-bestand [padprefix]] | sources pad [override-bestand [padprefix]] | contents pad | release pad | generate configuratiebestand sectie... | clean configuratiebestand | {-v | --version} | {-h | --help}} |
OMSCHRIJVING
apt-ftparchive 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/bookworm.
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 non-free-firmware
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.
--audit
Controle- (en kennisgevings)berichten tonen. Dit heeft voorrang op de optie quiet, maar alleen voor waarschuwingsberichten, niet voor voortgangsberichten.
-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.
--no-color, --color
Kleur aan- of uitzetten. Kleur staat standaard aan voor apt(8) op ondersteunde terminals en kan ook uitgezet worden met de omgevingsvariabelen NO_COLOR en APT_NO_COLOR, of verder geconfigureerd worden met de configuratieoptie en -scope APT::Color; zie apt.conf(5) voor informatie hierover.
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
DIAGNOSTIEK
apt-ftparchive geeft de terugkeerwaarde nul bij een normaal verlopen operatie, het decimaal getal 100 in geval van een fout.
BUGS
APT bugpagina [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 [AT] yucom.be>, in samenwerking met het Debian Dutch l10n Team <debian-l10n-dutch [AT] lists.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 |