I repository ed il loro utilizzo
Versioni Compatibili Tutte le versioni supportate di Debian |
Introduzione
Il repository è a tutti gli effetti un archivio ordinato dove sono raccolti i pacchetti Debian (siano essi pacchetti binari o sorgenti) in modo ben organizzato e costantemente aggiornato. In ogni sistema Debian i repository utilizzati vengono indicati nel file /etc/apt/sources.list
. Vedi anche FAQ: Cos'è un repository?.
La Struttura dei repository
Un repository è suddivisibile, grossomodo, in due sezioni:
- dists in questo ramo sono contenuti i file di controllo, che permettono il funzionamento del sistema di pacchettizzazione. Infatti sono presenti i file che descrivono i pacchetti presenti nell'archivio (divisi per la release di appartenenza);
- doc raccoglie la documentazione di base per Debian (segnalazioni di Bug, Faq, il Contratto Sociale ed altro);
- indices contiene l'indice di tutti i file contenuti in tutti i pacchetti. Queste informazioni sono usate da
apt-file
; - non-US a causa di problemi legali dovuti al divieto di esportazione di materiale per la difesa (tra cui materiale crittografici, utilizzati anche in PGP e SSH). Per ovviare a questi problemi, i pacchetti sono stati posti in una sezione a parte, la cui distribuzione è legata a server non statunitensi;
- pool questo è l'archivio vero e proprio, dove sono contenuti i pacchetti, raggruppati per lettera iniziale;
- project contiene materiale per sviluppatori. Degne di nota la directory experimental, che contiene i pacchetti in fase di sviluppo e perfezionamento;
- tools contiene degli strumenti Dos per la creazione di dischetti di boot, partizionamento e lancio di Linux.
La Suddivisione del repository
Navigando un po' tra gli archivi Debian, si nota subito una particolare suddivisione: i repository, infatti, sono divisi in main, contrib e non-free, nel modo seguente:
- main è la sezione principale, che contiene il 90% dei pacchetti presenti in Debian;
- contrib raccoglie i pacchetti coerenti con i punti 5 e/o 6 delle DFSG, ma che dipendono da pacchetti che non la rispettano;
- non-free contiene dei pacchetti che possiedono delle limitazioni nella distribuzione (ad esempio perché non utilizzabili in ambito commerciale o perché dipendenti da applicazioni o pacchetti che non rispettano la Debian Free Software Guidelines)
Nota che... ...Debian promuove e percorre il sentiero del software totalmente libero; l'uso delle sezioni contrib e non-free è una scelta personale e non un obbligo. |
Sources.list
La gestione dei repository avviene principalmente tramite modifiche al file /etc/apt/sources.list
, questo è forse il più importante file di configurazione del sistema di gestione dei pacchetti Debian; contiene infatti l'elenco e gli indirizzi dei repository a cui apt accede.
Ordine di Inserimento
È importante inserire i repository con un giusto ordine: i primi in elenco, infatti, sono i più importanti (o favoriti). Per migliorare le performance, è consigliabile ordinarli per velocità (es. prima il CD-ROM, poi la rete locale, poi internet, ecc.).
Sintassi
Ogni riga che descrive un repository ha una ben determinata sintassi:
deb[-src] <URI> <distribuzione> [componente/i]
Analizziamo i singoli componenti:
deb o deb-src
: serve ad indicare se il repository indicato contiene pacchetti binari o pacchetti sorgenti (se li contiene entrambi, è necessario specificarlo usando due righe diverse);URI
: indica l'indirizzo a cui è possibile trovare il repository; è possibile scegliere tra i seguenti metodi di accesso ai pacchetti:file
: permette di inserire un repository presente sul disco rigido del computer;cdrom
: permette di inserire un repository presente su un cd-rom;http
: permette di accedere ad un repository tramite il protocollo HTTP (se è impostata una variabile di ambientehttp_proxy
col formatohttp://server:port/
verranno usate queste opzioni per accedere al repository; in caso di necessità di autenticazione, è possibile specificare l'indirizzo del proxy, nella variabile d'ambientehttp_proxy
, nel seguente modo:http://user:pass@server:port/
, anche se risulta non essere un modo sicuro di autenticazione);ftp
: permette di accedere ad un repository tramite il protocollo FTP; è possibile specificare un proxy nello stesso modo indicato per http al punto precedente, sostituendo alla variabilehttp_proxy
ftp_proxy
;copy
: è identico a file, ma i file utilizzati vengono salvati nella cache di apt; utile nel caso di supporti removibili quali chiavette USB, floppy, memorie SD, ecc.;rsh, ssh
: permette di accedere ad un repository tramite il protocollo SSH. Non è possibile, però, effettuare alcuna autenticazione interattiva, ma solo tramite lo scambio di chiavi RSA;
distribuzione
: indica la distribuzione (o release) utilizzata, è possibile usare il nome in codice (lenny
,squeeze
,sid
) o il nome generico (stable
,testing
,unstable
);componente/i
: indica le sezioni (main
,contrib
,non-free
) del repository da inserire; sono possibili scelte multiple.
Alcuni esempi
Non c'è niente di meglio, per capire la sintassi del file sources.list
, di un po' di esempi.
I repository ufficiali (binari e sorgenti) presi da un mirror italiano:
deb http://ftp.it.debian.org/debian/ stable main deb-src http://ftp.it.debian.org/debian/ stable main
Ecco come invece si presenta la riga se si sceglie di aggiungere le sezioni contenenti software non totalmente libero.
solo contrib:
deb http://ftp.it.debian.org/debian/ stable main contrib deb-src http://ftp.it.debian.org/debian/ stable main contrib
anche non-free:
deb http://ftp.it.debian.org/debian/ stable main contrib non-free deb-src http://ftp.it.debian.org/debian/ stable main contrib non-free
Il repository di apt-build (Rif. 7.1 Pag. [*]):
deb file:/var/cache/apt-build/repository apt-build main
Un repository 'artigianale' accessibile tramite un webserver:
deb http://repos.debianizzati.org ./
Un repository situato nella home dell'utente maxer, creato con dpkg-scanpackages
:
deb file:/home/maxer/repos ./
Per altri repository vedere: Lista repository ufficiali Debian e Repository non ufficiali.
Sources.list aggiuntivi
A volte può capitare di avere l'esigenza di avere più di un file contenente la lista dei repository da cui scaricare i pacchetti. Questo può capitare nel caso il file sources.list
inizi a contenere un numero molto elevato di righe oppure perché si vogliono utilizzare dei repository diversi per le normali operazioni sui pacchetti.
Per far ciò è possibile creare dei semplici file di testo, contenenti gli indirizzi dei repository, nella directory /etc/apt/sources.list.d
. La sintassi da utilizzare al loro interno è uguale a quella del file sources.list
; si può scegliere liberamente il nome da assegnare ai file purché termini con l'estensione .list
Una volta creati i file aggiuntivi, questi verranno considerati da APT come se le righe al loro interno fossero presenti all'interno del file sources.list
.
È possibile anche specificare un file, contenente gli indirizzi dei repository, che non si trova all'interno della directory /etc/apt/sources.list.d
. Ad esempio, se il repository da cui abitualmente scarichiamo/aggiorniamo i pacchetti è irraggiungibile, basta creare un file (nell'esempio chiamato nomefile.list
) contenente dei repository appartenenti ad un diverso mirror ed eseguire:
# apt-get -o Dir::Etc::SourceList=/percorso/del/file/nomefile.list update
Bisogna specificare obbligatoriamente il percorso completo del file se questo non si trova nella directory /etc/apt/sources.list.d
Corretto l'8/2/2011 da Ernestus
Rielaborata l'impaginazione da Risca