Nello svolgere le sue operazioni, APT usa un file che contiene la lista delle "fonti" dalle quali può attingere i pacchetti. Questo file è /etc/apt/sources.list.
Il contenuto di questo file ha normalmente il seguente formato:
deb http://sito.http.org/debian distribuzione sezione1 sezione2 sezione3 deb-src http://sito.http.org/debian distribuzione sezione1 sezione2 sezione3
E' da osservare che l'esempio sopra è immaginario e non dovrebbe essere usato (non funziona). La prima parola di ogni riga, deb o deb-src, indica il tipo di archivio: deb quando questo contiene pacchetti binari (che sono i pacchetti già compilati che normalmente usiamo), oppure deb-src se l'archivio contiene i pacchetti sorgente (che sono il codice originale del programma con l'aggiunta del file di controllo, .dsc, e del file diff.gz che contiene i cambiamenti necessari per `debianizzare' il programma).
Generalmente questo è il contenuto di default di sources.list:
# See sources.list(5) for more information, especialy # Remember that you can only use http, ftp or file URIs # CDROMs are managed through the apt-cdrom tool. deb http://http.us.debian.org/debian stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org stable/updates main contrib non-free # Uncomment if you want the apt-get source function to work #deb-src http://http.us.debian.org/debian stable main contrib non-free #deb-src http://non-us.debian.org/debian-non-US stable non-US
Queste linee sono quelle necessarie per un'installazione base. La prima delle linee che iniziano con deb punta all'archivio ufficiale, la seconda all'archivio non-US e la terza all'archivio degli aggiornamenti per la sicurezza.
Le ultime due linee sono commentate (con un `#' all'inizio), così apt-get le ignora. Queste iniziano con deb-src e puntano agli archivi che contengono i pacchetti sorgente. Se si scaricano spesso i sorgenti di un programma, per fare dei test o per ricompilarlo, è necessario togliere il `#' all'inizio della linea.
In /etc/apt/sources.list si possono specificare diversi tipi di linee. APT sa come interpretare i seguenti tipi di archivio http, ftp, file (file locali, per esempio, oppure una directory su cui è montato un CD-ROM) e ssh.
Può capitare di avere dei pacchetti .deb da installare e lo si vuole fare usando APT così che le dipendenze siano risolte automaticamente.
Per rendere visibili ad APT questi pacchetti è necessario creare un archivio locale ed indicizzarlo; per farlo bisogna creare una directory e metterci dentro i .deb da trattare. Per esempio:
mkdir /root/debs
Ora, dentro la directory /root, va creato un file vuoto, con qualunque nome. Questo perché a ogni archivio APT serve un file conosciuto come "override", può essere anche vuoto, ma deve esistere. Si può usare il seguente comando per crearlo:
touch file
Dentro questo file si possono definire alcune opzioni che si sovrappongono a quelle predefinite nei pacchetti. Il suo formato dovrebbe assomigliare a quello che segue:
pacchetto priorità sezione
dove `pacchetto' è il nome del pacchetto, `priorità' può essere low, medium o high e `sezione' è la sezione alla quale appartiene. Per ora è sufficiente lasciarlo vuoto.
Rimanendo nella directory /root eseguire:
dpkg-scanpackages debs file | gzip > debs/Packages.gz
Nella linea sopra, `file' è il file di "override"; il comando genera il file debs/Packages.gz, questo contiene delle informazioni sui pacchetti che poi saranno usate da APT. Infine, per usare i nostri pacchetti, aggiungere questa linea a /etc/apt/source.list:
deb file:/root debs/
Dopo tutto questo si può usare APT normalmente. Anche per i pacchetti sorgente si può generare un archivio locale. Per farlo si segue la stessa procedura, ma bisogna ricordarsi di avere i file .orig.tar.gz, .dsc e .diff.gz nella directory di lavoro e bisognsa usare Sources.gz al posto di Packages.gz. Anche il programma usato è diverso: per questa operazione va utilizzato dpkg-scansources. La linea di comando sarà simile a questa:
dpkg-scansources debs | gzip > debs/Sources.gz
Notare che dpkg-scansources non necessita del file di "overide". Infine aggiungere a /etc/apt/source.list:
deb-src file:/root debs/
Un dubbio molto frequente, in particolare per nuovi utenti, è: "quale
mirror inserisco in sources.list?". Ci sono molti modi per
deciderlo. Gli utenti esperti probabilmente hanno uno script che misura il
tempo di ping verso svariati mirror. Ma c'è un programma che fa questo per
noi: netselect
.
Per installare netselect, generalmente si esegue:
apt-get install netselect
Eseguendo netselect senza alcun argomento viene mostrato un breve elenco delle opzioni. Eseguendolo con una lista di host separati da uno spazio come argomento, netselect, visualizzerà un punteggio e il nome di uno degli host fra quelli che ha ricevuto come parametro. Il punteggio prende in considerazione il tempo di ping e gli hops (cioè il numero di nodi della rete che si deve attraversare per raggiungere la destinazione) ed è inversamente proporzionale alla velocità di download stimata (cioè più è basso e più veloce sarà il download). Il nome mostrato è quello dell'host che ha il punteggio più basso (la lista completa dei punteggi per tutti gli host passati la si ottiene usando l'opzione -vv). Osservate questo esempio:
bash$ netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br 365 ftp.debian.org.br bash$
Significa che, fra i mirror indicati nella linea di comando, ftp.debian.org.br era il migliore, con un punteggio di 365. (Attenzione!! Questo risultato è stato ottenuto su un certo computer e per un tipo d'accesso alla rete, quindi questo valore non è assolutamente di validità generale).
Ora è necessario aggiungere il mirror più veloce nel file /etc/apt/sources.list (vedere Il file /etc/apt/sources.list, Sezione 2.1) e seguire i suggerimenti in Gestione dei pacchetti, Capitolo 3.
Nota: la lista completa dei mirror Debian si può trovare a
questo indirizzo http://www.debian.org/mirror/mirrors_full
.
Dalla versione 0.3 netselect include lo script netselect-apt
, che
esegue automaticamente il processo descritto sopra. E' sufficiente passare
come parametro il tipo di distribuzione (stable, testing o unstable) e nella
directory attuale verrà generato un nuovo sources.list con i
mirror migliori per il ramo main e per il ramo non-US. Il seguente esempio
genera un sources.list per la distribuzione stable:
bash$ ls sources.list ls: sources.list: File or directory not found bash$ netselect-apt stable (...) bash$ ls -l sources.list sources.list bash$
Da ricordare: il file sources.list è creato nella directory corrente e deve essere spostato nella directory /etc/apt.
Infine, seguite i suggerimenti in Gestione dei pacchetti, Capitolo 3.
Se si vuole usare un CD-ROM per installare i pacchetti o per aggiornare il
sistema automaticamente con APT, va inserito nel file
sources.list. Per farlo, si può usare il programma
apt-cdrom
in questo modo:
apt-cdrom add
con un CD-ROM di Debian nel drive. Questa istruzione monterà il CD-ROM e se il CD è valido verranno cercate le informazioni sui pacchetti che sono sul disco. Se la configurazione del CD-ROM è "inusuale", si possono usare le seguenti opzioni:
-h - program help -d directory - CD-ROM mount point -r - Rename a recognized CD-ROM -m - No mounting -f - Fast mode, don't check package files -a - Thorough scan mode
Per esempio:
apt-cdrom -d /home/kov/mycdrom add
Si può controllare un CD-ROM, senza inserirlo nella lista:
apt-cdrom ident
Notare che questo programma funziona solo se il CD-ROM è correttamente configurato in /etc/fstab.
APT HOWTO
1.7.6 - Gennaio 2002kov@debian.org