Usare APT offline
-----------------------------------------------------------------------------
Jason Gunthorpe
<jgg@debian.org>
Versione 2.4.14
-----------------------------------------------------------------------------
Diritto d'autore © 1999 Jason Gunthorpe
Licenza
«APT» e questo documento sono software libero; li si può ridistribuire e/
o modificare secondo i termini della Licenza Pubblica Generica GNU (GPL),
pubblicata dalla Free Software Foundation, nella versione 2 o (a propria
scelta) qualsiasi versione successiva.
Per ulteriori dettagli, sui sistemi Debian, si veda il testo completo
della licenza nel file /usr/share/common-licenses/GPL.
Sommario
Questo documento descrive come usare APT in un ambiente non connesso in rete,
specificatamente un approccio «sfrutta-altra-rete» per fare gli
aggiornamenti.
-----------------------------------------------------------------------------
Indice
1. Introduzione
1.1. Panoramica
2. Usare APT su entrambe le macchine
2.1. Panoramica
2.2. Il file di configurazione
3. Usare APT e wget
3.1. Panoramica
3.2. Funzionamento
Capitolo 1. Introduzione
Indice
1.1. Panoramica
1.1. Panoramica
Normalmente APT richiede l'accesso diretto ad un archivio Debian,
attraverso un supporto locale o la rete. Un problema comune è che una
macchina Debian ha un collegamento lento, come un modem, e un'altra
macchina ha una connessione veloce, ma le due sono fisicamente distanti.
La soluzione è usare supporti rimovibili grandi come un disco Zip o uno
SuperDisk. Questi dischi non sono grandi abbastanza per memorizzare
l'intero archivio Debian, ma possono facilmente contenere un sottoinsieme
sufficientemente grande per la maggior parte degli utenti. L'idea è di
usare APT per generare un elenco di pacchetti che sono necessari e poi
scaricarli nel disco usando un'altra macchina con una buona connettività.
È possibile anche usare un'altra macchina Debian con APT o usare un
sistema operativo completamente diverso e uno strumento per scaricare
file come wget. In questo documento con host remoto viene indicata la
macchina che scarica i pacchetti, e host di destinazione è quella senza
connessione o con una connessione non buona.
Questo viene ottenuto modificando in modo particolare il file di
configurazione di APT. Come premessa essenziale, si deve dire ad APT di
cercare in un disco i suoi file archivio. Notare che il disco deve essere
formattato con un file system che può gestire i nomi di file lunghi, come
ext2, fat32 o vfat.
Capitolo 2. Usare APT su entrambe le macchine
Indice
2.1. Panoramica
2.2. Il file di configurazione
2.1. Panoramica
La configurazione più semplice si ha se APT è disponibile su entrambe le
macchine. L'idea di base è di mettere una copia del file di stato sul
disco e usare la macchina remota per scaricare i file dei pacchetti più
recenti e per decidere quali pacchetti scaricare. La struttura delle
directory sul disco deve essere simile a:
/disc/
archives/
partial/
lists/
partial/
status
sources.list
apt.conf
2.2. Il file di configurazione
Il file di configurazione deve indicare ad APT di memorizzare i suoi file
sul disco e di usare i file di configurazione anch'essi sul disco. Il
file sources.list deve contenere i siti appropriati che si desiderano
usare dalla macchina remota e il file di stato dovrebbe essere una copia
di /var/lib/dpkg/status della macchina di destinazione. Notare che, se si
sta usando un archivio locale, si devono usare URI «copy» la cui sintassi
è identica a quella degli URI «file».
apt.conf deve contenere le informazioni necessarie per far sì che APT usi
il disco:
APT
{
/* Questo non è necessario se le due macchine hanno la stessa architettura,
dice ad APT remoto qual è l'architettura della macchina di destinazione */
Architecture "i386";
Get::Download-Only "true";
};
Dir
{
/* Usa il disco per le informazioni sullo stato e ridirige il file di stato
dalla posizione predefinita /var/lib/dpkg */
State "/disc/";
State::status "status";
// Le cache binarie saranno memorizzate in locale
Cache::archives "/disc/archives/";
Cache "/tmp/";
// Posizione dell'elenco di fonti.
Etc "/disc/";
};
Si possono vedere informazioni più dettagliate nella pagina di manuale di
apt.conf e nel file di configurazione d'esempio in /usr/share/doc/apt/
examples/apt.conf.
Nella macchina di destinazione, la prima cosa da fare è montare il disco
e copiarvi /var/lib/dpkg/status. Sarà anche necessario creare le
directory elencate nella panoramica: archives/partial/ e lists/partial/.
Poi portare il disco nella macchina remota e configurare il file
sources.list; in tale macchina eseguire:
# export APT_CONFIG="/disc/apt.conf"
# apt-get update
[ APT scarica i file degli elenchi dei pacchetti ]
# apt-get dist-upgrade
[ APT scarica tutti i pacchetti necessari per aggiornare la macchina di destinazione ]
Il comando dist-upgrade può essere sostituito con qualsiasi altro comando
APT standard, in particolare dselect-upgrade. Si può persino usare un
front-end per APT come dselect; questo tuttavia pone alcuni problemi nel
comunicare le selezioni fatte al computer locale.
Ora il disco contiene i file indice e gli archivi necessari per
aggiornare la macchina di destinazione. Riportare il disco alla macchina
locale ed eseguire:
# export APT_CONFIG="/disc/apt.conf"
# apt-get check
[ APT genera una copia locale dei file di cache ]
# apt-get --no-d -o dir::state::status=/var/lib/dpkg/status dist-upgrade
[ O qualsiasi altro comando APT ]
Per il corretto funzionamento è necessario rispecificare il fatto che il
file di stato è quello locale. Questo è molto importante!
Se si sta usando dselect si può fare l'operazione molto rischiosa di
copiare disc/status in /var/lib/dpkg/status, in modo che sia aggiornata
qualsiasi selezione fatta nella macchina remota. Si raccomanda di fare le
selezioni solamente nella macchina locale, ma ciò non è sempre possibile.
NON copiare il file di stato se nel frattempo sono stati eseguiti dpkg o
APT!
Capitolo 3. Usare APT e wget
Indice
3.1. Panoramica
3.2. Funzionamento
3.1. Panoramica
wget è uno strumento popolare e portabile per scaricare file che può
essere eseguito quasi su qualsiasi macchina. A differenza del metodo
descritto sopra, questo richiede che la macchina Debian abbia già un
elenco dei pacchetti disponibili.
L'idea di base è di creare un disco che ha solo i file degli archivi dei
pacchetti, scaricati dal sito remoto. Ciò viene fatto usando l'opzione
--print-uris di apt-get e poi preparando uno script che usa wget per
scaricare effettivamente i pacchetti.
3.2. Funzionamento
A differenza della tecnica precedente, non sono richiesti file di
configurazione speciali; vengono semplicemente usati i comandi APT
standard per generare l'elenco dei file.
# apt-get dist-upgrade
[ Inserire no alla domanda, assicurarsi di approvare le azioni proposte ]
# apt-get -qq --print-uris dist-upgrade > uris
# awk '{print "wget -O " $2 " " $1}' < uris > /disc/wget-script
Si può usare qualsiasi comando che non sia dist-upgrade, incluso
dselect-upgrade.
Il file /disc/wget-script contiene ora un elenco dei comandi wget da
eseguire per poter scaricare gli archivi necessari. Questo script
dovrebbe essere eseguito con il punto di mount del disco come directory
attuale di lavoro, in modo che l'output venga salvato sul disco.
Nella macchina remota fare qualcosa come:
# cd /disc
# sh -x ./wget-script
[ attendere... ]
Una volta che gli archivi sono stati scaricati e il disco è stato
riportato alla macchina Debian, si può procedere con l'installazione
usando
# apt-get -o dir::cache::archives="/disc/" dist-upgrade
che userà gli archivi già scaricati e presenti sul disco.
Generated by dwww version 1.14 on Sat Jun 13 10:21:38 CEST 2026.