e incorpora tutte le sue funzionalità tramite il comando
packages. Inoltre contiene un generatore di file dei contenuti,
contents, e un modo elaborato per gestire tramite script il processo di generazione per un archivio completo.
Internamente
apt-ftparchive
può far uso di database binari per tenere in cache il contenuto di un file .deb e non si basa su programmi esterni all'infuori di
gzip(1). Quando genera un archivio completo, esegue automaticamente un controllo sui file modificati e crea i file compressi desiderati in uscita.
A meno che non venga fornita l'opzione
-h
o
--help, deve essere presente uno dei comandi seguenti.
packages
-
Il comando packages genera un file dell'indice di pacchetti da un albero di directory. Prende la directory data e vi ricerca i file .deb ricorsivamente, emettendo per ciascuno un record sullo stdout. Questo comando è più o meno equivalente a
dpkg-scanpackages(1).
L'opzione
--db
può essere usata per specificare un database binario da usare come cache.
sources
-
Il comando
sources
genera un file indice dei sorgenti da un albero di directory. Prende la directory data e vi ricerca i file .dsc ricorsivamente, emettendo per ciascuno un record sullo stdout. Questo comando è più o meno equivalente a
dpkg-scansources(1).
Se si specifica un file override, allora verrà cercato un file override sorgente con estensione .src. L'opzione --source-override può essere usata per cambiare il file override sorgente da usare.
contents
-
Il comando
contents
genera un file di contenuti da un albero di directory. Prende la directory data e vi ricerca i file .deb ricorsivamente, leggendo l'elenco dei file da ciascun file. Quindi ordina e scrive sullo stdout l'elenco di file con i corrispondenti pacchetti. Le directory non vengono scritte sull'output. Se più pacchetti contengono lo stesso file, ciascun pacchetto è separato da una virgola nell'output.
L'opzione
--db
può essere usata per specificare un database binario da usare come cache.
release
-
Il comando
release
genera un file Release da un albero di directory. In modo predefinito cerca ricorsivamente nella directory data i file
Packages,
Sources,
Contents,
Components
e
icons
compressi e non compressi, come anche i file
Release,
Index
e
md5sum.txt
(APT::FTPArchive::Release::Default-Patterns). Si possono aggiungere ulteriori modelli per i nomi di file elencandoli in
APT::FTPArchive::Release::Patterns. Scrive poi sullo stdout un file
Release
contenente (in modo predefinito) per ogni file un digest MD5, SHA1, SHA256 e SHA512.
I valori dei campi di metadati aggiuntivi nel file Release sono presi dalle variabili corrispondenti sotto
APT::FTPArchive::Release, ad esempio
APT::FTPArchive::Release::Origin. I campi supportati sono:
Origin,
Label,
Suite,
Version,
Codename,
Date,
NotAutomatic,
ButAutomaticUpgrades,
Acquire-By-Hash,
Valid-Until,
Signed-By,
Architectures,
Components,
Description.
generate
-
Il comando
generate
è pensato per essere eseguibile da uno script di cron e costruisce gli indici in base al file di configurazione fornito. Il linguaggio di configurazione fornisce un mezzo flessibile per specificare quali file di indice vengano costruiti a partire da quali directory, oltre a fornire un mezzo semplice per amministrare le impostazioni desiderate.
clean
-
Il comando
clean
pulisce i database usati dal file di configurazione dato, rimuovendo tutti i record non più necessari.
LA CONFIGURAZIONE DI GENERATE
Il comando
generate
usa un file di configurazione per descrivere gli archivi da generare. Segue il tipico formato di configurazione ISC come usato negli strumenti ISC come bind 8 e dhcpd.
apt.conf(5)
contiene una descrizione della sintassi. Notare che la configurazione di generate viene letta per sezioni, ma
apt.conf(5)
viene letto ad albero. Ciò ha effetto soltanto sulla gestione del tag di ambito.
La configurazione di generate ha quattro sezioni separate, ciascuna delle quali è descritta in seguito.
Sezione Dir
La sezione
Dir
definisce le directory standard necessarie per localizzare i file richiesti durante il processo di generazione. Queste directory vengono fatte precedere da alcuni percorsi relativi definiti nelle sezioni successive, per produrre un percorso assoluto completo.
ArchiveDir
-
Specifica la radice dell'archivio FTP; in una configurazione Debian standard questa è la directory che contiene i nodi
ls-LR
e dist.
OverrideDir
-
Specifica la posizione dei file override.
CacheDir
-
Specifica la posizione dei file cache.
FileListDir
-
Specifica la posizione dei file con gli elenchi dei file, se viene usata l'impostazione
FileList
sotto.
Sezione Default
La sezione
Default
specifica i valori predefiniti e le impostazioni che controllano il funzionamento del generatore. Altre sezioni possono scavalcare questi valori tramite impostazioni definite per sezione.
Packages::Compress
-
Imposta gli schemi di compressione predefiniti da usare per i file indice dei pacchetti. È una stringa che contiene una lista separata da spazi con almeno uno dei compressori configurati con l'ambito di configurazione
APT::Compressor. Il valore predefinito per tutti gli schemi di compressione è «. gzip».
Packages::Extensions
-
Imposta la lista predefinita di estensioni di file che contraddistinguono i file dei pacchetti. Il valore predefinito è «.deb».
Sources::Compress
-
Simile a
Packages::Compress, tranne per il fatto che controlla la compressione dei file Sources.
Sources::Extensions
-
Imposta la lista predefinita di estensioni che contraddistinguono i file dei sorgenti. Il valore predefinito è «.dsc».
Contents::Compress
-
Simile a
Packages::Compress, tranne per il fatto che controlla la compressione dei file Contents.
Translation::Compress
-
Simile a
Packages::Compress, tranne per il fatto che controlla la compressione del file principale Translation-en.
DeLinkLimit
-
Specifica il numero dei kilobyte da scollegare (e sostituire con collegamenti fisici) per esecuzione. Viene usato insieme all'impostazione per sezione
External-Links.
FileMode
-
Specifica la modalità di tutti i file indice creati. Il valore predefinito è 0644. Tutti i file di indice sono impostati a questa modalità a prescindere dall'umask.
LongDescription
-
Specifica se le descrizioni lunghe debbano essere incluse nel file
Packages
o separate in un file
Translation-en
principale.
Sezione TreeDefault
Imposta valori predefiniti specifici per le sezioni
Tree. Tutte queste variabili sono variabili di sostituzione in cui le stringhe $(DIST), $(SECTION) e $(ARCH) verranno sostituite dai loro rispettivi valori.
MaxContentsChange
-
Imposta il numero di kilobyte di file Contents che vengono generati ogni giorno. I file Contents sono ruotati a turno in modo da venire rigenerati tutti nel giro di alcuni giorni.
ContentsAge
-
Controlla il numero di giorni durante i quali un file Contents può essere controllato senza modifiche. Al superamento di questo limite, l'orario mtime del file Contents viene aggiornato. Questo può succedere se il file Packages viene modificato in un modo che non ha come risultato un nuovo file Contents [ad esempio una modifica di override]. È consentito un certo ritardo, nella speranza che vengano installati nuovi pacchetti .deb, il che richiederebbe comunque la creazione di un nuovo file. Il valore predefinito è 10, i valori sono espressi in giorni.
Directory
-
Imposta la radice dell'albero della directory dei .deb. Il valore predefinito è
$(DIST)/$(SECTION)/binary-$(ARCH)/.
SrcDirectory
-
Imposta la radice dell'albero della directory dei pacchetti sorgente. Il valore predefinito è
$(DIST)/$(SECTION)/source/.
Packages
-
Imposta il file Packages di uscita. Il valore predefinito è
$(DIST)/$(SECTION)/binary-$(ARCH)/Packages.
Sources
-
Imposta il file Sources di uscita. Il valore predefinito è
$(DIST)/$(SECTION)/source/Sources.
Translation
-
Imposta il file Translation-en principale di uscita contenente le descrizioni lunghe se non devono essere incluse nel file Packages. Il valore predefinito è
$(DIST)/$(SECTION)/i18n/Translation-en.
InternalPrefix
-
Imposta il prefisso del percorso che fa sì che un collegamento simbolico sia considerato un collegamento interno invece che esterno. Il valore predefinito è
$(DIST)/$(SECTION)/.
Contents
-
Imposta il file Contents di uscita. Il valore predefinito è
$(DIST)/$(SECTION)/Contents-$(ARCH). Se questa impostazione fa sì che più file Packages corrispondano a un solo file Contents (come avviene con il valore predefinito), allora
apt-ftparchive
unirà automaticamente insieme questi file dei pacchetti.
Contents::Header
-
Imposta il file di intestazione da anteporre all'output dei contenuti.
BinCacheDB
-
Imposta il database per la cache binaria da usare per questa sezione. Lo stesso database può essere condiviso da più sezioni.
FileList
-
Specifica che invece di percorrere l'albero delle directory,
apt-ftparchive
deve leggere la lista dei file dal file dato. I nomi relativi dei file vengono fatti precedere dalla directory archivio.
SourceFileList
-
Specifica che invece di percorrere l'albero delle directory,
apt-ftparchive
deve leggere la lista dei file dal file dato. I nomi di file relativi vengono fatti precedere dalla directory archivio. Questa opzione viene usata quando si elaborano gli indici dei sorgenti.
Sezione Tree
La sezione
Tree
definisce un albero di file standard Debian che consiste in una directory di base, quindi più sezioni in quella directory di base e infine più architetture in ogni sezione. Gli esatti percorsi usati sono definiti dalla variabile di sostituzione
Directory.
La sezione
Tree
accetta un tag di ambito che imposta la variabile
$(DIST)
e definisce la radice dell'albero (il percorso viene fatto precedere da
ArchiveDir). Di solito è un'impostazione simile a
dists/buster.
Tutte le impostazioni definite nella sezione
TreeDefault
possono essere usate in una sezione
Tree, oltre a tre nuove variabili.
Quando elabora una sezione
Tree,
apt-ftparchive
esegue un'operazione simile a:
-
for i in Sections do
for j in Architectures do
Genera per DIST=ambito SECTION=i ARCH=j
Sections
-
Questa è una lista di sezioni che appaiono sotto la distribuzione, separate da spazi; tipicamente è simile a
main contrib non-free.
Architectures
-
Questa è una lista separata da spazi di tutte le architetture che sono presenti nella sezione ricerca. L'architettura speciale «source» viene usata per indicare che questo albero ha un archivio sorgente. L'architettura «all» indica che i file specifici per un'architettura come
Packages
non dovrebbero includere informazioni sui pacchetti con architettura
all
in tutti i file, dato che saranno disponibili in un file dedicato.
LongDescription
-
Specifica se le descrizioni lunghe debbano essere incluse nel file
Packages
o separate in un file
Translation-en
principale.
BinOverride
-
Imposta il file override binario. Il file override contiene informazioni sulla sezione, la priorità e l'indirizzo del manutentore.
SrcOverride
-
Imposta il file override sorgente. Il file override contiene informazioni sulla sezione.
ExtraOverride
-
Imposta il file override binario extra.
SrcExtraOverride
-
Imposta il file override sorgente extra.
Sezione BinDirectory
La sezione
bindirectory
definisce un albero di directory dei binari senza una struttura speciale. Il tag di ambito specifica la posizione della directory dei binari e le impostazioni sono simili a quelle della sezione
Tree
senza variabili di sostituzione o impostazioni
SectionArchitecture.
Packages
-
Imposta l'output del file Packages.
Sources
-
Imposta l'output del file Sources. È obbligatorio almeno uno fra
Packages
e
Sources.
Contents
-
Imposta l'output del file Contents (opzionale).
BinOverride
-
Imposta il file override binario.
SrcOverride
-
Imposta il file override sorgente.
ExtraOverride
-
Imposta il file override binario extra.
SrcExtraOverride
-
Imposta il file override sorgente extra.
BinCacheDB
-
Imposta il DB della cache.
PathPrefix
-
Aggiunge un percorso a tutti i percorsi di uscita.
FileList, SourceFileList
-
Specifica il file con l'elenco dei file.
IL FILE OVERRIDE BINARIO
Il file override binario è completamente compatibile con
dpkg-scanpackages(1). Contiene quattro campi separati da spazi. Il primo campo è il nome del pacchetto, il secondo è la priorità a cui forzare quel pacchetto, il terzo è la sezione in cui forzare quel pacchetto e l'ultimo campo è il campo di permutazione del manutentore.
La forma generale del campo manutentore è:
-
vecchio [// vecchio...]* => nuovo
o semplicemente
-
nuovo
. La prima forma consente di specificare una lista di vecchi indirizzi di posta elettronica separati da una doppia sbarra. Se qualcuno di essi viene trovato, allora il campo manutentore viene sostituito con «nuovo». La seconda forma sostituisce invariabilmente il campo manutentore.
IL FILE OVERRIDE SORGENTE
Il file override sorgente è completamente compatibile con
dpkg-scansources(1). Contiene due campi separati da spazi. Il primo campo è il nome del pacchetto sorgente, il secondo è la sezione a cui assegnarlo.
IL FILE OVERRIDE EXTRA
Il file override extra permette di aggiungere o sostituire nell'output un tag arbitrario. Ha tre colonne: la prima per il pacchetto, la seconda per il tag e il resto della riga è il nuovo valore.
OPZIONI
Tutte le opzioni a riga di comando si possono impostare usando il file di configurazione; le descrizioni indicano l'opzione da impostare. Per le opzioni booleane si può scavalcare il file di configurazione usando qualcosa come
-f-,
--no-f,
-f=no
o diverse altre varianti.
--md5, --sha1, --sha256, --sha512
-
Genera i codici di controllo specificati. Queste opzioni sono abilitate in modo predefinito; quando vengono disabilitate i file indice non hanno, quando ciò è possibile, i campi dei codici di controllo. Voci di configurazione:
APT::FTPArchive::Codice-di-controllo
e
APT::FTPArchive::Indice::Codice-di-controllo
dove
Indice
può essere
Packages,
Sources
o
Release
e
Codice-di-controllo
può essere
MD5,
SHA1,
SHA256
o
SHA512.
-d, --db
-
Usa un DB per la cache binaria. Questo non ha effetto sul comando generate. Voce di configurazione:
APT::FTPArchive::DB.
-q, --quiet
-
Silenzioso; produce un output adatto per un file di registro, omettendo gli indicatori di avanzamento. Ulteriori q produrranno un risultato ancor più silenzioso, fino a un massimo di 2. È anche possibile usare
-q=n
per impostare il livello di silenziosità, scavalcando il file di configurazione. Voce di configurazione:
quiet.
--delink
-
Effettua il de-collegamento. Se viene usata l'impostazione
External-Links
allora questa opzione abilita di fatto il de-collegamento dei file. È attiva in modo predefinito e può essere disabilitata con
--no-delink. Voce di configurazione:
APT::FTPArchive::DeLinkAct.
--contents
-
Effettua la generazione dei Contents. Se viene impostata questa opzione e gli indici dei pacchetti sono generati con un DB della cache, allora anche l'elenco dei file verrà estratto e memorizzato nel DB per gli usi futuri. Quando si usa il comando generate questa opzione permette anche la creazione di qualsiasi file Contents. È attiva in modo predefinito. Voce di configurazione:
APT::FTPArchive::Contents.
-s, --source-override
-
Seleziona il file override sorgente da usare con il comando
sources. Voce di configurazione
APT::FTPArchive::SourceOverride.
--readonly
-
Rende i database delle cache in sola lettura. Voce di configurazione:
APT::FTPArchive::ReadOnlyDB.
-a, --arch
-
Accetta per i comandi
packages
e
contents
solo i file di pacchetto che corrispondono a
*_arch.deb
o
*_all.deb
invece di tutti i file di pacchetto nel percorso specificato. Voce di configurazione:
APT::FTPArchive::Architecture.
APT::FTPArchive::AlwaysStat
-
apt-ftparchive(1)
memorizza in un database cache il maggior numero possibile di metadati. Se i pacchetti sono ricompilati o ripubblicati nuovamente con la stessa versione, questo causa problemi dato che verranno usati dei metadati in cache, come la dimensione e i codici di controllo, non più aggiornati. Notare che questa opzione è impostata in modo predefinito a «false» dato che non è raccomandabile caricare più versioni/compilazioni di un pacchetto con lo stesso numero di versione, perciò in teoria nessuno dovrebbe avere di questi problemi e di conseguenza tutti questi controlli aggiuntivi sono inutili.
APT::FTPArchive::LongDescription
-
Questa opzione di configurazione è impostata a «true» in modo predefinito e dovrebbe essere impostata a
«false»
solamente se l'archivio generato con
apt-ftparchive(1)
fornisce anche file
Translation. Notare che il file principale
Translation-en
può essere creato solamente con il comando generate.
-h, --help
-
Mostra un breve riassunto sull'uso.
-v, --version
-
Mostra la versione del programma.
-c, --config-file
-
File di configurazione; specifica un file di configurazione da usare. Il programma legge il file di configurazione predefinito e poi questo file di configurazione. Se è necessario modificare le impostazioni di configurazione prima che vengano analizzati i file di configurazione predefiniti, specificare un file con la variabile d'ambiente
APT_CONFIG. Vedere
apt.conf(5)
per informazioni sulla sintassi.
-o, --option
-
Imposta un'opzione di configurazione; imposterà una qualunque opzione di configurazione. La sintassi è
-o Pinco::Pallo=pallo.
-o
e
--option
si possono usare più volte per impostare opzioni diverse.
ESEMPI
Per creare un file Packages compresso per una directory contenente pacchetti binari (.deb):
-
apt-ftparchive packages directory | gzip > Packages.gz
VEDERE ANCHE
apt.conf(5)
DIAGNOSTICA
apt-ftparchive
restituisce zero in caso di funzionamento normale e il valore decimale 100 in caso di errore.
BUG
m[blue]Pagina dei bug di APTm[][1]. Se si desidera segnalare un bug in APT, vedere
/usr/share/doc/debian/bug-reporting.txt
o il comando
reportbug(1).
TRADUZIONE
Traduzione in italiano a cura del Team italiano di localizzazione di Debian
<debian-l10n-italian@lists.debian.org>. In particolare hanno contribuito Eugenia Franzoni (2000), Hugh Hartmann (2000-2012), Gabriele Stilli (2012), Beatrice Torracca (2012, 2014, 2015).
Notare che questa versione tradotta del documento può contenere parti non tradotte. Ciò è voluto, per evitare di perdere contenuti quando la traduzione non è aggiornata rispetto all'originale.
AUTORI
Jason Gunthorpe
-
Team APT
-
NOTE
- 1.
-
Pagina dei bug di APT
-
http://bugs.debian.org/src:apt