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

Aggiornamento repositories di Marillat
(Aggiornamento repositories di Marillat)
(Aggiornamento repositories di Marillat)
Riga 1: Riga 1:
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.
Spesso abbiamo la necessit� di installare la nuova versione di un pacchetto di cui proprio non possiamo fare a meno, che 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.
Il caso pi� frequente probabilmente quello di un' installazione di Sarge 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.
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 incosistenze.


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...).
Per prima cosa 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.
 
In questo how-to mostrer� come far convivere Sarge e Sid sulla stessa macchina, ma le istruzioni sono facilmente riportabili anche ad altre situazioni (unstable + experimental, woody + sarge, woody + unstable, woody + sarge + sid, ecc...).


Assicuriamoci di essere l' utente root e procediamo.
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:
Creiamo il file preferences:
<pre>
### Debian Ufficiale -- Sarge
deb http://ftp.it.debian.org/debian/ testing main non-free contrib
 
### Debian Ufficiale -- Sarge 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
</pre>
 
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:
<pre>
<pre>
# touch /etc/apt/preferences
# touch /etc/apt/preferences
</pre>
</pre>
editiamolo col nostro editor di fiducia e inseriamo queste direttive:
editiamolo col nostro editor di fiducia e inseriamo queste direttive:
<pre>
<pre>
Package: *
Package: *
Pin: release o=xmixahlx
Pin: release a=unstable
Pin-Priority: 950
Pin-Priority: 650
 
Package: *
Pin: release o=Unofficial Multimedia Packages
Pin-Priority: 900


Package: *
Package: *
Pin: release a=testing
Pin: release a=testing
Pin-Priority: 850
Pin-Priority: 600
 
Package: *
Pin: release a=unstable
Pin-Priority: 800
 
Package: *
Pin: release a=experimental
Pin-Priority: 750
</pre>
</pre>
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:
<pre>
# 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
</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 è contenuto proprio il dato che stavamo cercando: Origin.


Ora creiamo il file apt-conf
Ora creiamo il file apt-conf
Riga 103: Riga 39:


<pre>
<pre>
APT::Default-Release "testing";
APT::Default-Release "unstable";
APT::Cache-Limit 10000000;
APT::Cache-Limit 10000000;
Apt::Get::Purge;
Apt::Get::Purge;
Riga 111: Riga 47:
APT::Get::Show-Upgraded "true";
APT::Get::Show-Upgraded "true";
</pre>
</pre>
Ora non ci resta che aggiungere i repository necessari al file /etc/apt/sources.list assicurandoci di avere un repositry per Sarge ed uno per Sid.


Facciamo l' update del database dei pacchetti:
Facciamo l' update del database dei pacchetti:
Riga 118: Riga 56:
</pre>
</pre>


D'ora in avanti avremo due possibilità per installare un nuovo pacchetto: il metodo che usiamo di solito e cioè:
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 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.
 
<pre>
# apt-get install nome_pacchetto
</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!


----
Autore: [[User:Keltik|Keltik]]
 
Autore: [[User:Keltik|Keltik]]<br>
Revisione: [[User:Nest|Nest]] <br>
Verificato: [[Utente:TheNoise|~ The Noise]]
806

contributi