Un repository Debian è un insieme di pacchetti Debian sorgente o binari organizzati in uno speciale albero di directory, insieme a vari file aggiuntivi di infrastruttura: somme di controllo, indici, firme, traduzioni delle descrizioni, ... I computer client possono connettersi al repository per scaricare e installare i pacchetti usando uno strumento di gestione dei pacchetti basato su Apt.

Anatomia di un repository

La descrizione che segue è per lo più per coloro che navigano un repository usando un browser web standard e si chiedono cosa ci sia e dove sia, e come il tutto funzioni nel suo complesso. Una descrizione più precisa e tecnica è contenuta in Format.

Un repository Debian contiene diversi rilasci. I rilasci di Debian prendono il nome da personaggi dei film della serie "Toy Story" (wheezy, jessie, stretch, ...). I nomi in codice hanno alias, le cosiddette suites (stable, oldstable, testing, unstable). Un rilascio è diviso in varie componenti. In debian queste si chiamano main, contrib e non-free e il nome indica i termini delle licenze del software che contengono. Un rilascio ha anche pacchetti per varie architetture (amd64, i386, mips, powerpc, s390x, ...), oltre e pacchetti sorgente ed indipendenti dall'architettura.

La directory radice di un repository contiene una directory dists che a sua volta contiene una directory per ciascun rilascio e suite, con le seconde che solitamente sono collegamenti simbolici ai primi, ma un browser non mostra la differenza. Ogni sottodirectory di rilascio contiene un file Release firmato crittograficamente e una directory per ciascuna componente. All'interno di queste ci sono directory per le diverse architetture, chiamate binary-<arch> e sources. In queste poi vi sono file Packages che sono file di testo che contengono i metadati dei pacchetti. In tutto questo, dove sono allora i veri pacchetti?

I pacchetti veri e propri sono in pool nella directory radice del repository. Dentro a pool ci sono, ancora una volta, directory per tutte le componenti e in queste directory con nomi del tipo 0, ..., 9, a, b, ... z, liba, ... , libz. In esse poi ci sono directory che prendono il nome dal pacchetto software che contengono e queste, finalmente, contengono i pacchetti effettivi, cioè i file .deb. Il nome non è necessariamente il nome del pacchetto stesso; il pacchetto bsdutils, ad esempio, è contenuto nella directory pool/main/u/util-linux, è il nome del sorgente da cui viene generato il pacchetto. Un unico pacchetto sorgente a monte, può generare svariati pacchetti binari, e tutti questi sono contenuti nella stessa sottodirectory all'interno di pool. Le directory aggiuntive con nome di una sola lettera sono solamente un trucco per evitare di avere troppe voci in un'unica directory, il che è una cosa con cui molti sistemi tradizionalmente hanno problemi di prestazioni.

Nelle directory terminali sotto pool ci sono generalmente più versioni di un pacchetto e le informazioni riguardante a quali rilasci appartenga una versione sono contenute solamente negli indici. In questo modo la stessa versione di un pacchetto può appartenere a più rilasci ma occupa spazio solo una volta e senza dover ricorrere a collegamenti simbolici o fisici, perciò creare mirror è piùttosto semplice e funziona anche con sistemi che non hanno tali concetti.

Mirror

Il repository ufficiale dei pacchetti Debian ha mirror in tutto il mondo.

Elenchi dei pacchetti

Per navigare l'elenco dei pacchetti Debian raggruppati per categoria, si possono guardare stable, testing, unstable e varie altri elenchi o cercare nella homepage dei pacchetti

Lavorare con i repository

Lavorare con un repository può voler dire due cose diverse: 1. Si può usare un repository con la famiglia di programmi apt (apt, apt-get, apt-cache, aptitude), per sfogliare o installare i pacchetti. 1. Si può configurare da sé un repository e aggiungervi e rimuovervi pacchetti.

Usare un repository

Usare un repository è piuttosto semplice: per il repository Debian ufficiale aprire /etc/apt/sources.list, inserire la riga

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

poi eseguire

apt update

(Naturalmente come utente root o usando sudo). Si può anche prendere in considerazione l'utilizzo di URL come:

Per i repository Debian ufficiali è sufficiente questa semplice procedure. La pagina su [it/SourcesList|SourcesList] contiene ulteriori informazioni sulle voci per sources.list. Per altri repository di terze parti, è consigliabile seguire questa eccellente guida per ridurre il rischio di esporre il proprio sistema ad un repository mantenuto senza le dovute accortezze.

Impostare e mantenere un repository

Ci sono vari motivi per creare un repository da sé. Si possono avere alcuni pacchetti con modifiche locali che si possono voler rendere disponibili con apt, si può voler eseguire un mirror locale con i pacchetti che sono usati da diverse macchine per risparmiare banda o si possono creare pacchetti propri e si può volere testarli prima di pubblicarli.


CategoryPackageManagement