Old:APT uso avanzato: mixare releases diverse: differenze tra le versioni
mNessun oggetto della modifica |
mNessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
Spesso abbiamo la | Spesso abbiamo la necessità di installare la nuova versione di un pacchetto di cui proprio non possiamo fare a meno, che però non è disponibile per il rilascio di Debian che abbiamo installato. | ||
Il caso | Il caso più frequente è probabilmente quello di un' installazione di Testing (Etch) con la necessità di installare anche pacchetti presenti solo in Unstable o in Experimental, oppure di voler usare un repository con pacchetti particolari, ma compilati per una release di Debian diversa dalla nostra. | ||
APT | APT è nostro fido alleato anche in questi frangenti, permettendoci di utilizzare fonti per pacchetti di releases 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 ''preferences''. | ||
In questo how-to | 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...). | ||
Assicuriamoci di essere l' utente root e procediamo. | Assicuriamoci di essere l' utente root e procediamo. | ||
Riga 11: | Riga 11: | ||
Per prima cosa editiamo il file '''/etc/apt/sources.list''' ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo: | Per prima cosa editiamo il file '''/etc/apt/sources.list''' ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo: | ||
<pre> | <pre> | ||
### Debian Ufficiale -- | ### Debian Ufficiale -- Testing | ||
deb http:// | deb http://ftp.it.debian.org/debian/ testing main non-free contrib | ||
### Debian Ufficiale -- | ### Debian Ufficiale -- Testing Sicurezza | ||
deb http://security.debian.org/ testing/updates main contrib non-free | deb http://security.debian.org/ testing/updates main contrib non-free | ||
### Debian Ufficiale -- Sid | ### Debian Ufficiale -- Sid | ||
deb http:// | deb http://ftp.it.debian.org/debian/ unstable main non-free contrib | ||
### Debian Ufficiale -- Experimental | ### Debian Ufficiale -- Experimental | ||
Riga 27: | Riga 27: | ||
### Multimedia -- Video -- Marillat | ### Multimedia -- Video -- Marillat | ||
deb ftp://ftp.nerim.net/debian-marillat/ | deb ftp://ftp.nerim.net/debian-marillat/ etch main | ||
deb ftp://ftp.nerim.net/debian-marillat/ | deb ftp://ftp.nerim.net/debian-marillat/ sid main | ||
</pre> | </pre> | ||
Riga 41: | Riga 41: | ||
<pre> | <pre> | ||
Package: * | Package: * | ||
Pin: release o= | Pin: release o=Unofficial Multimedia Packages | ||
Pin-Priority: 950 | Pin-Priority: 950 | ||
Package: * | Package: * | ||
Pin: release o= | Pin: release o=xmixahlx | ||
Pin-Priority: 900 | Pin-Priority: 900 | ||
Riga 61: | Riga 61: | ||
</pre> | </pre> | ||
Il pinning | Il pinning può essere orientato ad un archivio, un'origine, la versione di un pacchetto, un componente, ecc... | ||
Con "o=" si specifica l' origine (la distribuzione) del pacchetto, con "a=" l'archivio (sarge,sid, stable, ecc...). | |||
Questo dato | Con '''"o="''' si specifica l' origine (la distribuzione) del pacchetto, con '''"a="''' l'archivio (sarge,sid, stable, 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). | |||
Vediamo alcuni esempi: | Vediamo alcuni esempi: | ||
<pre> | <pre> | ||
# cd /var/lib/apt/lists | |||
# cat www.rarewares.org_debian_packages_unstable_._Release | |||
Archive: unstable | Archive: unstable | ||
Origin: xmixahlx | Origin: xmixahlx | ||
Label: xmixahlx_rarewares-unstable | Label: xmixahlx_rarewares-unstable | ||
Architecture: i386 | Architecture: i386 | ||
# cat ftp.nerim.net_debian-marillat_dists_testing_main_binary-i386_Release | |||
Archive: testing | Archive: testing | ||
Component: main | Component: main | ||
Riga 80: | Riga 83: | ||
Label: Unofficial Multimedia Packages | Label: Unofficial Multimedia Packages | ||
Architecture: i386 | Architecture: i386 | ||
</pre> | |||
Dove: | |||
* '''Archive''' = è 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); | |||
* '''Origin''' = specifica il proprietario del repository; | |||
* '''Label''' = identifica il repository: potete inserire descrizioni, ecc...; | |||
* '''Architecture''' = l'architettura dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc...). | |||
Possiamo vedere che nel file Release | Possiamo vedere che nel file Release è contenuto proprio il dato che stavamo cercando: Origin. | ||
Ora creiamo il file apt-conf | Ora creiamo il file apt-conf | ||
Riga 95: | Riga 104: | ||
<pre> | <pre> | ||
APT::Default-Release "testing"; | APT::Default-Release "testing"; | ||
APT::Cache-Limit | APT::Cache-Limit 15000000; | ||
Apt::Get::Purge; | Apt::Get::Purge; | ||
APT::Clean-Installed; | APT::Clean-Installed; | ||
Riga 109: | Riga 118: | ||
</pre> | </pre> | ||
D'ora in avanti avremo due | D'ora in avanti avremo due possibilità per installare un nuovo pacchetto: il metodo che usiamo di solito e cioè: | ||
<pre># apt-get install nome_pacchetto</pre> | |||
che | <pre> | ||
<pre>apt-get install -t versione_di_debian nome_pacchetto</pre> | # apt-get install nome_pacchetto | ||
che | </pre> | ||
che utilizzerà pacchetti proveniente dalla versione impostata come '''Default-Release''' in '''apt.conf''', oppure il comando | |||
<pre> | |||
# apt-get install -t versione_di_debian nome_pacchetto | |||
</pre> | |||
che provvederà a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze. | |||
Happy debian! | Happy debian! | ||
Riga 119: | Riga 136: | ||
---- | ---- | ||
Autore: [[User:Keltik|Keltik]] | Autore: [[User:Keltik|Keltik]]<br> | ||
Revisione: [[User:Nest|Nest]] <br> | |||
Verificato: [[Utente:TheNoise|~ The Noise]] | |||
[[Categoria:Apt]] |
Versione delle 14:24, 26 dic 2006
Spesso abbiamo la necessità di installare la nuova versione di un pacchetto di cui proprio non possiamo fare a meno, che però non è disponibile per il rilascio di Debian che abbiamo installato.
Il caso più frequente è probabilmente quello di un' installazione di Testing (Etch) con la necessità di installare anche pacchetti presenti solo in Unstable o in Experimental, oppure di voler usare un repository con pacchetti particolari, ma compilati per una release di Debian diversa dalla nostra.
APT è nostro fido alleato anche in questi frangenti, permettendoci di utilizzare fonti per pacchetti di releases 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 preferences.
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...).
Assicuriamoci di essere l' utente root e procediamo.
Per prima cosa editiamo il file /etc/apt/sources.list ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo:
### Debian Ufficiale -- Testing deb http://ftp.it.debian.org/debian/ testing main non-free contrib ### Debian Ufficiale -- Testing Sicurezza deb http://security.debian.org/ testing/updates main contrib non-free ### Debian Ufficiale -- Sid deb http://ftp.it.debian.org/debian/ unstable main non-free contrib ### Debian Ufficiale -- Experimental deb http://ftp.debian.org/debian/ ../project/experimental main ### Multimedia -- Audio -- Rarewares deb http://www.rarewares.org/debian/packages/unstable ./ ### Multimedia -- Video -- Marillat deb ftp://ftp.nerim.net/debian-marillat/ etch main deb ftp://ftp.nerim.net/debian-marillat/ sid main
A questo punto dobbiamo preparare due files normalmente non presenti sulla nostra debianbox: si tratta dei file preferences e apt.conf. Questi due file istruiranno APT su come gestire le dipendenze dei pacchetti, informandolo su come comportarsi in caso di conflitti e altri problemi.
Creiamo il file preferences:
# touch /etc/apt/preferences
editiamolo col nostro editor di fiducia e inseriamo queste direttive:
Package: * Pin: release o=Unofficial Multimedia Packages Pin-Priority: 950 Package: * Pin: release o=xmixahlx Pin-Priority: 900 Package: * Pin: release a=testing Pin-Priority: 850 Package: * Pin: release a=unstable Pin-Priority: 800 Package: * Pin: release a=experimental Pin-Priority: 750
Il pinning può essere orientato ad un archivio, un'origine, la versione di un pacchetto, un componente, ecc...
Con "o=" si specifica l' origine (la distribuzione) del pacchetto, con "a=" l'archivio (sarge,sid, stable, 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).
Vediamo alcuni esempi:
# cd /var/lib/apt/lists # cat www.rarewares.org_debian_packages_unstable_._Release 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 Label: Unofficial Multimedia Packages Architecture: i386
Dove:
- Archive = è 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);
- Origin = specifica il proprietario del repository;
- Label = identifica il repository: potete inserire descrizioni, ecc...;
- Architecture = 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.
Ora creiamo il file apt-conf
# touch /etc/apt/apt.conf
editiamolo inserendo quanto segue:
APT::Default-Release "testing"; APT::Cache-Limit 15000000; Apt::Get::Purge; APT::Clean-Installed; APT::Get::Fix-Broken; APT::Get::Fix-Missing; APT::Get::Show-Upgraded "true";
Facciamo l' update del database dei pacchetti:
# apt-get update
D'ora in avanti avremo due possibilità per installare un nuovo pacchetto: il metodo che usiamo di solito e cioè:
# apt-get install nome_pacchetto
che utilizzerà pacchetti proveniente dalla versione impostata come Default-Release in apt.conf, oppure il comando
# apt-get install -t versione_di_debian nome_pacchetto
che provvederà a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze.
Happy debian!
Autore: Keltik
Revisione: Nest
Verificato: ~ The Noise