I repository ed il loro utilizzo: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Riga 190: Riga 190:
=== Un esempio concreto ===
=== Un esempio concreto ===


In questo how-to mostrerò come utilizzare pacchetti Debian provenienti da Testing, Unstable, Experimental, Marillat (multimedia/video) e  Rarewares.org (multimedia/audio), ma le istruzioni sono facilmente riportabili anche ad altre situazioni (unstable + experimental, stable + testing, stable + unstable, stable + testing + unstable, ecc...).
In questo how-to mostrerò come utilizzare pacchetti Debian provenienti da Testing, Unstable, Experimental e deb-multimedia (audio/video) ma le istruzioni sono facilmente riportabili anche ad altre situazioni (unstable + experimental, stable + testing, stable + unstable, stable + testing + unstable, ecc.).


==== Impostare i repository ====
==== Impostare i repository ====
Riga 196: Riga 196:
Assicuriamoci di essere l'utente root e procediamo.
Assicuriamoci di essere l'utente root e procediamo.


Per  prima cosa editiamo il file  <code>/etc/apt/sources.list</code> ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo, per esempio:
Per  prima cosa editiamo il file  <code>/etc/apt/sources.list</code> ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo, per esempio:
<pre>
<pre>
### Debian Ufficiale -- Testing
### Debian Ufficiale -- Testing
deb http://ftp.it.debian.org/debian/ testing main non-free contrib
deb http://ftp.it.debian.org/debian/ testing main contrib non-free


### Debian Ufficiale -- Testing Sicurezza
### Debian Ufficiale -- Testing Sicurezza
Riga 205: Riga 205:


### Debian Ufficiale -- Sid
### Debian Ufficiale -- Sid
deb http://ftp.it.debian.org/debian/ unstable main non-free contrib
deb http://ftp.it.debian.org/debian/ unstable main contrib non-free


###  Debian Ufficiale -- Experimental
###  Debian Ufficiale -- Experimental
deb http://ftp.debian.org/debian/ ../project/experimental main
deb http://ftp.it.debian.org/debian/ experimental main contrib non-free


### Multimedia -- Audio -- Rarewares
### deb-multimedia -- Audio/Video -- Marillat
deb http://www.rarewares.org/debian/packages/unstable ./
deb http://www.deb-multimedia.org testing main non-free
 
deb http://www.deb-multimedia.org sid main non-free
### Multimedia -- Video -- Marillat
deb ftp://ftp.nerim.net/debian-marillat/ etch main
deb ftp://ftp.nerim.net/debian-marillat/ sid main
</pre>
</pre>


Riga 221: Riga 218:


A questo punto dobbiamo preparare due file normalmente non presenti sulla nostra debianbox: si tratta dei file <code>/etc/apt/preferences</code> e <code>/etc/apt/apt.conf</code>.
A questo punto dobbiamo preparare due file normalmente non presenti sulla nostra debianbox: si tratta dei file <code>/etc/apt/preferences</code> e <code>/etc/apt/apt.conf</code>.
Questi due file istruiranno APT su come gestire le dipendenze dei pacchetti, informandolo su come comportarsi in caso di conflitti e altri problemi.
Questi due file istruiranno APT su come gestire le dipendenze dei pacchetti, informandolo su come comportarsi in caso di conflitti e altri problemi.


===== Il file <code>preferences</code> =====
===== Il file <code>preferences</code> =====
Riga 234: Riga 231:
Pin: release o=Unofficial Multimedia Packages
Pin: release o=Unofficial Multimedia Packages
Pin-Priority: 950
Pin-Priority: 950
Package: *
Pin: release o=xmixahlx
Pin-Priority: 900


Package: *
Package: *
Riga 252: Riga 245:
</pre>
</pre>


Il pinning può essere orientato ad un archivio, un'origine, la versione di un pacchetto, un componente, ecc...
Il pinning può essere orientato ad un archivio, un'origine, la versione di un pacchetto, un componente, ecc.<br>


Con '''"o="''' si specifica l' origine (la distribuzione) del pacchetto, con '''"a="''' l'archivio (sarge, sid, stable, ecc...).
Con '''"o="''' si specifica l'origine (la distribuzione) del pacchetto, con '''"a="''' l'archivio (stable, testing, sid, 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).
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:
Vediamo alcuni esempi:
Riga 262: Riga 255:
<pre>
<pre>
# cd /var/lib/apt/lists
# cd /var/lib/apt/lists
# cat www.rarewares.org_debian_packages_unstable_._Release
# cat deb-multimedia.org_dists_unstable_InRelease
Archive: unstable
Origin: xmixahlx                    
Label: xmixahlx_rarewares-unstable
Architecture: i386
 
# cat ftp.nerim.net_debian-marillat_dists_testing_main_binary-i386_Release
Archive: testing
Component: main
Origin: Unofficial Multimedia Packages
Origin: Unofficial Multimedia Packages
Label: Unofficial Multimedia Packages
Label: Unofficial Multimedia Packages
Architecture: i386
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>
</pre>


Dove:
Dove:
* '''Archive''' = è l'archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc...);
* '''Suite''' = è l'archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc.);
* '''Component''' = indica il tipo di componente (ad es.: main, contrib, non-free);
* '''Components''' = indica il tipo di componente (ad es.: main, contrib, non-free);
* '''Origin''' = specifica il proprietario del repository;
* '''Origin''' = specifica il proprietario del repository;
* '''Label''' = identifica il repository: potete inserire descrizioni, ecc...;
* '''Label''' = identifica il repository: potete inserire descrizioni, ecc.;
* '''Architecture''' = l'architettura dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc...).  
* '''Architectures''' = le architetture dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc.).


Possiamo vedere che nel file Release è contenuto proprio il dato che stavamo cercando: Origin.
Possiamo vedere che nel file Release è contenuto proprio il dato che stavamo cercando: Origin.
Riga 323: Riga 324:
</pre>
</pre>


che provvederà a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze.
che provvederà a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze.


== Approfondimenti ==
== Approfondimenti ==