I repository ed il loro utilizzo

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.

Lista repository ufficiali debian

Di seguito troverete l'elenco repository ufficiali da inserire nel sources.list per le varie versioni di debian. Il mirror è quello italiano. I repository dei pacchetti sorgente sono commentati. per ulteriori informazioni leggere la sezione: Sources.list.

Debian Sarge

 ## Debian Stable (sarge)
 deb http://ftp.it.debian.org/debian/ testing main contrib non-free
 #deb-src http://ftp.it.debian.org/debian/ testing main contrib non-free

 ## Aggiornamenti della sicurezza
 deb http://security.debian.org/ sarge/updates main contrib
 #deb-src http://security.debian.org/ sarge/updates main contrib

Per l'uso di sarge in ambito desktop (ma non solo) sono molto utili i backports:

Debian Etch

 ## Debian Testing (etch)
 deb http://ftp.it.debian.org/debian/ testing main contrib non-free
 #deb-src http://ftp.it.debian.org/debian/ testing main contrib non-free

 ## Aggiornamenti della sicurezza
 deb http://security.debian.org/ etch/updates main contrib
 #deb-src http://security.debian.org/ etch/updates main contrib

Debian Sid

 ## Debian Unstable (sid)
 deb http://ftp.it.debian.org/debian/ unstable main contrib non-free
 #deb-src http://ftp.it.debian.org/debian/ unstable main contrib non-free

Per Sid non c'è il repository per la sicurezza dato che eventuali falle vengono corrette semplicemente con l'aggiornamento del pacchetto incriminato.

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 matariale 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 direcotory experimetal, 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 la DFSG5.6, 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 Guideline)

Sources.list

Il ruolo fondamentale

Il file /etc/apt/sources.list è forse il più importante file di configurazione del sistema di gestione dei pacchetti Debian. Esso, infatti, contiene 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 cdrom, poi la rete locale, poi internet, ...).

Sintassi

Ogni riga che descrive un repository ha una ben determinata sintassi:

deb uri distribution [component..]

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 sull'Hard Disk 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 ambiente http_proxy col formato http://server:port/ verranno usate queste opzioni per accedere al repository; in caso di necessità di autenticazione, è possibile specificare l'inidirizzo del proxy, nella variabile d'ambiente http_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 nell stesso modo indicato per http al punto precedente, sostituendo alla variabile http_proxy ftp_proxy;
    • copy è idendico a file, ma i file utilizzati vengono salvati nella cache di apt; utile nel caso di supporti removibili quali Usb-drive, Floppy, Zip, ...;
    • rsh, ssh permette di accedere ad un repository tramite il protocollo ssh. Non è possibile, però, effettuare alcuna autenticazione interativa, ma solo tramite lo scambio di chiavi RSA.
  • distribution indica la distribuzione (o release) utilizzata... è possibile usare il nome in codice (sarge, etch, sid) o il nome generico (stable, testing, unstable);
  • component indica la sezione (non-free, main, contrib...) del repository da inserire; sono possibili scelte multiple.

Alcuni esempi

Non c'è niente di meglio, per capire la sintassi del file sources.list, si un po' di esempi:

deb http://ftp.it.debian.org/debian/ stable main non-free contrib
deb-src http://ftp.it.debian.org/debian/ stable main non-free contrib

I repository ufficiali (binari e sorgenti) presi da un mirror italiano.

deb file:/var/cache/apt-build/repository apt-build main

Il repository di apt-build (Rif. 7.1 Pag. [*])

deb http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free

I repository ufficiali del repository non-US; interessante l'indicazione della directory non-US presente nella directory dists/sid/

deb http://repos.debianizzati.org ./

Un repository 'artigianale' accessibile tramite un webserver

deb file:/home/maxer/repos ./

Un repository situato nella home dell'utente maxer, creato con dpkg-scanpackages.



MaXeR