Soluzione 1:
Molte persone sembrano aver paura di mischiare stable con testing, ma francamente testing è abbastanza stabile di per sé, e con le preferenze adeguate e il controllo della soluzione, puoi evitare la "deriva di stabilità" che mette i tuoi pacchetti core sul percorso instabile.
"Il test è abbastanza stabile??" , tu chiedi. Sì. Affinché un pacchetto possa migrare da unstable a testing, deve avere zero bug aperti per 10 giorni consecutivi. È probabile che, specialmente per i pacchetti più popolari, qualcuno invierà una segnalazione di bug per una versione instabile se qualcosa non va.
Anche se non vuoi mescolare gli ambienti, è comunque bello avere l'opzione lì nel caso in cui ti imbatti in qualcosa che richiede una versione più recente di quella che è stabile.
Ecco cosa ti consiglio per configurarlo:
Innanzitutto, crea i seguenti file in /etc/apt/preferences.d
:
stable.pref
:
# 500 <= P < 990: causes a version to be installed unless there is a
# version available belonging to the target release or the installed
# version is more recent
Package: *
Pin: release a=stable
Pin-Priority: 900
testing.pref
:
# 100 <= P < 500: causes a version to be installed unless there is a
# version available belonging to some other distribution or the installed
# version is more recent
Package: *
Pin: release a=testing
Pin-Priority: 400
unstable.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=unstable
Pin-Priority: 50
experimental.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=experimental
Pin-Priority: 1
(Non aver paura delle cose unstable/experimental qui. Le priorità sono abbastanza basse da non installare mai automaticamente nessuna di quelle cose. Anche il ramo testing si comporterà, poiché installerà solo i pacchetti che vuoi essere in fase di test.)
Ora creiamo un set corrispondente per /etc/apt/sources.list.d
:
stable.list
:Copia dal tuo /etc/apt/sources.list
originale . Rinomina il vecchio file in qualcosa come sources.list.orig
.
testing.list
:Uguale a stable.list
, tranne con testing
.
unstable.list
:Uguale a stable.list
, tranne con unstable
e rimuovere gli elenchi di sicurezza.
experimental.list
:Uguale a unstable.list
, tranne con experimental
.
Puoi anche aggiungere un oldstable
in sources.lists.d
e preferences.d
(usa una priorità di 1), anche se questo moniker tenderà a scadere e scomparire prima del prossimo ciclo stabile. In casi del genere, puoi usare http://archive.debian.org/debian/
e "hardcode" la versione Debian (etch, lenny, ecc.).
Per installare la versione di prova di un pacchetto, usa semplicemente aptitude install lib-foobar-package/testing
, o semplicemente entra nella GUI di aptitude e seleziona la versione all'interno dei dettagli del pacchetto (premi invio sul pacchetto che stai guardando).
Se ricevi lamentele per conflitti tra pacchetti, guarda prima le soluzioni. Nella maggior parte dei casi, il primo sarà "non installare questa versione". Impara a utilizzare le opzioni di risoluzione accetta/rifiuta per pacchetto. Ad esempio, se stai installando foobar-package/testing e la prima soluzione è "non installare foobar-package/testing", contrassegna quella scelta come rifiutata e le altre soluzioni non torneranno mai più su quel percorso. In casi come questi, probabilmente dovrai installare alcuni altri pacchetti di test.
Se sta diventando troppo peloso (come se stesse cercando di aggiornare libc o il kernel o qualche altro enorme sistema centrale), allora puoi rifiutare quei percorsi di aggiornamento o semplicemente uscire dall'aggiornamento iniziale del tutto. Ricorda che aggiornerà le cose a testing/unstable solo se lo permetti.
EDIT:corretti alcuni pin prioritari e aggiornato l'elenco.
Soluzione 2:
In /etc/apt/apt.conf.d
aggiungi il seguente file
99defaultrelease
:
APT::Default-Release "stable";
in /etc/apt/sources.list.d
- aggiungi URL per fonti test/instabili
stable.list
:
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
testing.list
:
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
corri
apt-get update
e quindi installa ciò di cui hai bisogno con
apt-get -t testing install something
Fai molta molta attenzione se installi cose che hanno molte dipendenze. Preferibilmente non farlo in produzione.
Puoi anche tentare la fortuna con backport o repository simili.
Soluzione 3:
apt_preferences
Definire il livello predefinito a cui il sistema deve eseguire l'"aggiornamento sicuro" nel file /etc/apt/preferences:
man apt_preferences
C'è molto che puoi fare con apt_preferences ma per semplicità...
Avevo bisogno di installare un singolo pacchetto (autoMysqlBackup) disponibile solo in Testing. La soluzione era aggiungere quanto segue a /etc/apt/preferences:
Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
Con più repository aggiunti a /etc/apt/sources.list, ora aptitude eseguirà l'upgrade solo alla versione specificata anche se sono elencati i repository della versione successiva (in questo caso 'stable').
deb http://mirror.aarnet.edu.au/debian/ lenny main
deb-src http://mirror.aarnet.edu.au/debian/ lenny main
deb http://mirror.aarnet.edu.au/debian/ squeeze main
deb-src http://mirror.aarnet.edu.au/debian/ squeeze main
Quindi per installare quel pacchetto, tutto ciò che devi fare è:
$ aptitude install -t testing packageName
Soluzione 4:
Per quello che vale, il consiglio generale che ho sempre visto è "Non mescolare stabile con niente". La maggior parte dei tutorial sui sistemi misti serve per mescolare testing e unstable.
Il ragionamento sembra essere che se mescoli stable con testing, pacchetti molto basilari (come libc6) richiederanno aggiornamenti (per installare il software da testing), e una volta che questi pacchetti di base passano a testing, l'intero sistema può spostarsi in quel modo.
Ecco due alternative:
- Utilizza backport.
- Installa una riga di codice sorgente da testing e prova a creare la versione successiva che desideri da sorgente.
Soluzione 5:
La documentazione di Debian è ampia sull'argomento e consiglio vivamente di scavare perché svelerà davvero la bellezza del sistema Debian.
Dai un'occhiata a Come mantenere un sistema misto, ti spiegherà tutto quello che devi sapere.