I repository ed il loro utilizzo: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Riga 7: Riga 7:


= La Struttura dei repository =
= La Struttura dei repository =
Un repository è suddivisibile, grossomodo, in due sezioni:
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);
* '''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);
Riga 16: Riga 17:
* '''tools''' contiene degli strumenti Dos per la creazione di dischetti di boot, partizionamento e lancio di Linux.
* '''tools''' contiene degli strumenti Dos per la creazione di dischetti di boot, partizionamento e lancio di Linux.


= La Suddivisione del repository =
=== Il file "Release" ===
 
Ogni repository contiene un file "Release" contenente diversi informazioni fondamentali per l'utilizzo da parte di APT. Di seguito un paio di esempi
 
<pre>
Origin: Unofficial Multimedia Packages
Label: Unofficial Multimedia Packages
Suite: unstable
Version: None
Codename: sid
Date: Thu, 09 May 2013 21:26:40 UTC
Architectures: amd64 armel armhf i386 ia64 mips mipsel powerpc sparc kfreebsd-i386 kfreebsd-amd64
Components: main non-free
Description: This repository is mostly non-free
 
# cat liquorix.net_debian_dists_sid_InRelease
Origin: liquorix
Label: cool stuff
Suite: unstable
Codename: sid
Date: Fri, 03 May 2013 00:32:30 UTC
Architectures: i386 amd64
Components: main future past
Description: liquorix repository
</pre>
 
Dove:
* '''Origin''' specifica il proprietario del repository. Se si fa uso del pinning si può sfruttare questo dato inserendo la riga <code>Pin: release o=</code> In <code>preferences</code>.
* '''Label''' identifica il repository: potete inserire descrizioni, ecc. Se si fa uso del pinning si può sfruttare questo dato inserendo la riga <code>Pin: release l=</code> In <code>preferences</code>.
* '''Suite''' (o anche ''Archive'') è l'archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc.). Se si fa uso del pinning si può sfruttare questo dato inserendo la riga <code>Pin: release a=</code> In <code>preferences</code>.
* '''Codename''' specifica il nome in codice della release. Se si fa uso del pinning si può sfruttare questo dato inserendo la riga <code>Pin: release n=</code> In <code>preferences</code>.
* '''Architectures''' elenca le architetture dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc.).
* '''Components''' indica il tipo di componente (ad es.: main, contrib, non-free);
 
= Le sezioni dei 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:
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;
* '''main''' è la sezione principale, che contiene il 90% dei pacchetti presenti in Debian;
Riga 23: Riga 58:


{{Box|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.}}
{{Box|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 =
= Sources.list =
Riga 211: Riga 245:
</pre>
</pre>
Nel primo esempio si è definito il pinning per il pacchetto di nome "vlc", richiedendo che le versioni appartenenti alla distribuzione testing abbiano priorità 991. Nel secondo invece sfruttando una semplicissima espressione regolare si impone che tutti i pacchetti il cui nome inizia per "virtualbox4" e appartenenti al repository la cui origine è definita come "Oracle Corporation" abbiano priorità 780.
Nel primo esempio si è definito il pinning per il pacchetto di nome "vlc", richiedendo che le versioni appartenenti alla distribuzione testing abbiano priorità 991. Nel secondo invece sfruttando una semplicissima espressione regolare si impone che tutti i pacchetti il cui nome inizia per "virtualbox4" e appartenenti al repository la cui origine è definita come "Oracle Corporation" abbiano priorità 780.
Il pinning può essere orientato ai campi "Suite", "Origin", "Label" e "Codename" del file "Release" di un certo repository (si veda inizio pagina), nonché all'indirizzo del repository stesso. Si noti che per archivi personali e/o non ufficiali può non essere presente (purtroppo) un file "Release".


== Un esempio concreto ==
== Un esempio concreto ==
Riga 268: Riga 304:
Pin-Priority: 750
Pin-Priority: 750
</pre>
</pre>
Il pinning può essere orientato ad un archivio, un'origine, la versione di un pacchetto, un componente, ecc.<br>
Questo dato è reperibile in modo inequivocabile attraverso APT, andando a sbirciare all'interno del file "Release" che è contenuto in tutti i repository ufficiali. Per archivi personali e/o non ufficiali, invece, non è sempre e necessariamente presente (purtroppo).<br>
Vediamo alcuni esempi:
<pre>
# cd /var/lib/apt/lists
# cat deb-multimedia.org_dists_unstable_InRelease
Origin: Unofficial Multimedia Packages
Label: Unofficial Multimedia Packages
Suite: unstable
Version: None
Codename: sid
Date: Thu, 09 May 2013 21:26:40 UTC
Architectures: amd64 armel armhf i386 ia64 mips mipsel powerpc sparc kfreebsd-i386 kfreebsd-amd64
Components: main non-free
Description: This repository is mostly non-free
# cat liquorix.net_debian_dists_sid_InRelease
Origin: liquorix
Label: cool stuff
Suite: unstable
Codename: sid
Date: Fri, 03 May 2013 00:32:30 UTC
Architectures: i386 amd64
Components: main future past
Description: liquorix repository
</pre>
Dove:
* '''Origin''' specifica il proprietario del repository. In <code>preferences</code> si può sfruttare questo dato inserendo la riga <code>Pin: release o=</code>.
* '''Label''' identifica il repository: potete inserire descrizioni, ecc. In <code>preferences</code> si può sfruttare questo dato inserendo la riga <code>Pin: release l=</code>.
* '''Suite''' è l'archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc.). In <code>preferences</code> si può sfruttare questo dato inserendo la riga <code>Pin: release a=</code>.
* '''Codename''' specifica il nome in codice della release. In <code>preferences</code> si può sfruttare questo dato inserendo la riga <code>Pin: release n=</code>.
* '''Architectures''' elenca le architetture dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc.).
* '''Components''' indica il tipo di componente (ad es.: main, contrib, non-free);
Possiamo vedere che nel file Release è contenuto proprio il dato che stavamo cercando: Origin.


=== Il file <code>apt.conf</code> ===
=== Il file <code>apt.conf</code> ===
Riga 351: Riga 347:
= Approfondimenti =
= Approfondimenti =
== Sitografia ==
== Sitografia ==
* I paragrafi 5.1, 5.2, 5.3 e 5.4 contengono materiale tratto dalla guida originale pubblicata su [http://www.mirkopagliai.it/debian-repository-e-pinning  www.mirkopagliai.it], distribuita secondo licenza originale CC.
* Parte di quanto scritto nella sezione dedicata al pinning è materiale tratto dalla guida originale pubblicata su [http://www.mirkopagliai.it/debian-repository-e-pinning  www.mirkopagliai.it], distribuita secondo licenza originale CC.


{{Autori
{{Autori
3 155

contributi