Old:APT uso avanzato: mixare releases diverse: differenze tra le versioni

Aggiornamento generale
(Aggiornamento generale)
Riga 8: Riga 8:
APT è nostro fido alleato anche in questi frangenti, permettendoci di utilizzare fonti per pacchetti di release diverse (e soddisfarne le dipendenze) senza costringerci ad un upgrade dell'intera distribuzione e senza dover impazzire per risolvere conflitti e inconsistenze. Questa caratteristica è definita anche '''apt-pinning''', dal ''pin'' che si imposta nel file <code>/etc/apt/preferences</code>.
APT è nostro fido alleato anche in questi frangenti, permettendoci di utilizzare fonti per pacchetti di release diverse (e soddisfarne le dipendenze) senza costringerci ad un upgrade dell'intera distribuzione e senza dover impazzire per risolvere conflitti e inconsistenze. Questa caratteristica è definita anche '''apt-pinning''', dal ''pin'' che si imposta nel file <code>/etc/apt/preferences</code>.


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 Marillat (deb-multimedia), 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 33: Riga 33:
</pre>
</pre>
In alternativa, invece di editare il file <code>/etc/apt/sources.list</code>, è possibile aggiungere nuovi files nella directory <code>/etc/apt/sources.list.d/</code>: dal manuale <code>man sources.list</code>
In alternativa, invece di editare il file <code>/etc/apt/sources.list</code>, è possibile aggiungere nuovi files nella directory <code>/etc/apt/sources.list.d/</code>: dal manuale <code>man sources.list</code>
<pre>       La  directory /etc/apt/sources.list.d fornisce un metodo per aggiungere
<pre>
      La  directory /etc/apt/sources.list.d fornisce un metodo per aggiungere
       voci di sources.list in file separati che terminano con .list. Il
       voci di sources.list in file separati che terminano con .list. Il
       formato è il medesimo del file sources.list regolare.
       formato è il medesimo del file sources.list regolare.
Riga 44: Riga 45:
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.


Anche in questo caso, come per <code>/etc/apt/sources.list</code>, è possibile creare dei files nelle directory <code>/etc/apt/preferences.d/</code> e <code>/etc/apt/apt.conf.d/</code>, anzichè editare <code>/etc/apt/preferences</code> e <code>/etc/apt/apt.conf</code>.
Anche in questo caso, come per <code>/etc/apt/sources.list</code>, è possibile creare dei files nelle directory <code>/etc/apt/preferences.d/</code> e <code>/etc/apt/apt.conf.d/</code>, anziché editare <code>/etc/apt/preferences</code> e <code>/etc/apt/apt.conf</code>.
Vedere il manuale di <code>apt_preferences</code> e <code>apt.conf</code> per approfondimenti.
Vedere il manuale di <code>apt_preferences</code> e <code>apt.conf</code> per approfondimenti.


Riga 77: Riga 78:
Con '''"o="''' si specifica l'origine (la distribuzione) del pacchetto, con '''"a="''' l'archivio (stable, testing, sid, jessie, ecc...).
Con '''"o="''' si specifica l'origine (la distribuzione) del pacchetto, con '''"a="''' l'archivio (stable, testing, sid, jessie, ecc...).


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 "InRelease" che è contenuto in tutti i repository ufficiali. Per archivi personali e/o non ufficiali, invece, non è sempre e necessariamente presente (purtroppo).


Vediamo alcuni esempi:
Vediamo alcuni esempi:
Riga 84: Riga 85:
$ 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 deb-multimedia.org_dists_sid_InRelease
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''' = l'architettura 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 145: Riga 154:
</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.


Happy debian!
Happy debian!
317

contributi