DebianCome molti sapranno, esistono tre versioni di Debian (chiamate anche release):

1) Debian stable, attualmente «Squeeze»;
2) Debian testing, attualmente «Wheezy»;
3) Debian unstable, attualmente (e sempre, è un nome fisso) «Sid».

Il software della stable non viene aggiornato, eccezion fatta per gli aggiornamenti della sicurezza; il software della testing e della unstable viene al contrario aggiornato frequentemente, con una maggiore frequenza per la unstable. Oltre queste tre, ci sarebbero anche la oldstable (la vecchia stable, precedente all’attuale stable) e la experimental (una versione altamente sperimentale), ma di scarsissima diffusione rispetto alle altre (e che vi sconsiglio caldamente)
Vi invito ad un approfondimento dell’argomento (approfondimento che personalmente considero molto interessante), sia sulle precise differenze tra le versioni¹, sia sui meccanismi che portano al passaggio da una versione a un’altra².

Introduzione al pinning

Ora, spesso accade che utilizzando la testing o ancor di più la stable si voglia del software più nuovo rispetto a quello in dotazione; o che al contrario, utilizzando la testing o ancor di più la unstable si voglia del software più stabile rispetto a quello in dotazione. Qui entra in gioco il pinning dei repository – meglio “tra i repository” -, che permette di installare con semplicità del software appartenente a una versione di Debian diversa da quella in uso, senza creare casino nel sistema e nel gestore dei pacchetti e permettendo di scegliere se installare solo un pacchetto da un’altra versione o se anche le sue relative dipendenze (alternativamente, verranno utilizzate le dipendenze della versione in uso, se disponibili).

Affinché questo sia possibile, è necessario innanzitutto istruire apt secondo i nostri desideri. I file in questione sono due e precisamente /etc/apt/apt.conf e /etc/apt/preferences, che ora andremo ad analizzare. In un’installazione di default questi due file non sono normalmente presenti (vengono utilizzate delle impostazioni di default), quindi dovremmo procedere col crearli manualmente con i privilegi di root.

Il file /etc/apt/apt.conf

APT::Default-Release "testing";
APT::Cache-Limit 24000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";
APT::Force-LoopBreak=true;
APT::Get::AllowUnauthenticated 1;

Andiamo ad analizzare questo esempio riga per riga:

1) specifichiamo la versione di Debian predefinita, quella che vogliamo utilizzare di default (nel mio caso e negli esempi successivi la testing);
2) specifichiamo la dimensione della cache;
3) ordiniamo il purge dei pacchetti;
4) ordiniamo la pulizia della cache;
5) chiediamo di sistemare automaticamente i pacchetti che presentano dipendenze non soddisfatte;
6) chiediamo di sistemare i pacchetti non possibili da installare;
7) chiediamo di mostrare gli upgrade dei pacchetti;
8) chiediamo di forzare il “loop” dei pacchetti con dipendenze non soddisfatte;
9) autorizziamo l’installazione di pacchetti non autenticati.

Essendo questo un argomento molto complesso, per scoprire tutte le funzioni disponibili e per approfondire il funzionamento di quelle appena elencate, vi rimando al manuale e agli help:

apt-get --help
aptitude --help
man apt.conf

Il file /etc/apt/preferences

Nel file preferences andremo a stabilire la priorità delle varie versioni tramite un sistema basato sui pin. Vediamo i possibili valori di questi pin:

1) pin maggiore di 1000: il pacchetto ha l’assoluta priorità nell’installazione (può implicare il downgrade);
2) pin compreso tra 991 e 1000: il pacchetto verrà installato anche se non fa parte della release specificata in apt.conf, a meno che la versione installata sia più recente;
3) pin compreso tra 551 e 990: il pacchetto verrà installato a meno che ci sia disponibile una versione che fa parte della release specificata in apt.conf o che la versione installata sia più recente;
4) pin compreso tra 101 e 550: il pacchetto verrà installato a meno che ci sia disponibile una versione appartenente a qualsiasi release o che la versione installata sia più recente;
5) pin compreso tra 0 e 100: il pacchetto viene installato solo se non è installata nessuna versione del pacchetto;
6) pin minore di 0 (negativo): previene l’installazione del pacchetto, qualsiasi sia l’origine.

Ecco un esempio del file preferences:

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10

Questo esempio tiene conto di due casi:
1) i pacchetti della testing, cui viene assegnato pin 900 (dalla riga 1 alla 3);
2) tutti gli altri pacchetti di tutte le altre versioni (in questo caso quindi di stable e unstable), cui viene assegnato pin -10 (dalla riga 5 alla 7).

In altri termini, qui abbiamo specificato che i pacchetti della testing (che è anche la versione indicata in apt.conf) dovranno avere la massima priorità. Ai pacchetti di altre versioni non è assegnata nessuna priorità (pin minore di 0) e quindi verranno eventualmente installati solo su nostro comando.

Installare tramite pinning

Fatto questo, sarà sufficiente aggiungere al proprio /etc/apt/sources.list i repository delle altre versioni che ci interessano³.

Per installare pacchetti dalla nostra versione in uso, quella che abbiamo anche specificato in apt.conf, procederemo normalmente, come abbiamo sempre fatto. Per pacchetti di altre versioni, invece, avremo a disposizione due comandi:

apt-get install pacchetto/unstable

che installa pacchetto dalla unstable con le dipendenze della versione indicata in /etc/apt/apt.conf (nell’esempio vista prima, la testing), se disponibili. In alternativa:

apt-get install -t unstable pacchetto

che installa pacchetto dalla unstable con le dipendenze della unstable.

Fonte: http://e-zine.debianizzati.org/web-zine/numero_2/?page=12
Note:
¹ http://www.debian.org/releases/
² http://www.debian.org/doc/FAQ/ch-ftparchives#s-frozen
³ http://guide.debianizzati.org/index.php/I_repository_ed_il_loro_utilizzo#Lista_repository_ufficiali_debian

Espandi/comprimi Commenti
Mirko Pagliai | Gnome Gmail
(10/01/2011, 15:36)

[…] Per quanto riguarda Debian, il pacchetto è attualmente presente solo per la unstable (con il nome di gnome-gmail) e quindi, se la versione in uso è un’altra, sarà necessario ricorrere al pinning per l’installazione (come già descritto in precedente post, qui). […]

[…] MirkoPagliai Debianizzati Debianizzati Apt man apt-get NAME apt-get – APT package handling utility — […]

[…] profezia di Calamandrei su La profezia di CalamandreiRepository e Pinning « Linux StickIt su Debian: repository e pinningMirko Pagliai | La settimana, III su La settimana, IIMirko Pagliai | Dimettiti, ma non per le […]

[…] volete, quindi, potete procedere tramite pinning (guida), almeno per i pacchetti presenti su Squeeze e/o Unstable. Ma per agevolarvi il lavoro, ho creato […]

Mirko Pagliai | Amarok 1.4.10
(24/05/2012, 00:35)

[…] | Amarok 1.4.10 su Amarok 1.4.10: aggiornamentiMirko Pagliai | Amarok 1.4.10: aggiornamenti su Debian: repository e pinningMirko Pagliai | Amarok 1.4.10: aggiornamenti su Amarok 1.4.10Mirko Pagliai su Cestinare tutto lo […]

XHTML - Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>