Capitolo 2. Usare APT su entrambe le macchine

Indice

2.1. Panoramica
2.2. Il file di configurazione

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

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!