Mantenere un pacchetto Debian ad una determinata versione 14 Gennaio 2008 - 1:27
Inviato da Antonio De Luci (imu) in : Curiosità , Debian, Linux, O.S. Revolution, Tips , trackbackQuesto post nasce da una domanda di un lettore “Caste” fatta sull’ articolo precedente “KDE 4.0.0 su Debian (ma rimuove KDE3, singh!)” e cioè come fare per mantenere un pacchetto(i) ad una determinata versione, nello specifico si chiedeva “che nel malaugurato caso in Sid entrasse KDE 4.0.0” come si potrebbe fare per mantenere KDE alla versione attuale “3.5.8″ ?.
Intanto secondo il mio modesto parere credo che sicuramente se non specificata e richiesta l’installazione della versione 4.X la cosa non avverrà in automatico, cioè credo si manterrà lo stesso criterio usato ora con il repository experimental, comunque dato che la cosa potrebbe tornare utile anche in altri casi e cioè mantenere versioni di pacchetti bloccate vi mostro come farei io, in modo semplice e veloce.
Con dpkg esporterei la lista dei pacchetti :
$ dpkg --get-selections > packages.txt
Poi editerei il file appena creato “packages.txt“, cambiando la riga corrispondente al nome del pacchetto che intendo mantenere da “install” a “hold“, per fare un esempio inerente prendiamo in esame il pacchetto “kdebase” :
Quindi apriamo con il nostro editor preferito il file “packages.txt” e troviamo la corrispondenza :
kdebase install
e la modifichiamo in :
kdebase hold
Dopo aver salvato il file , ricarichiamo il database (da root o tramite sudo):
$ sudo dpkg --set-selections < packages.txt
Applicando lo stato di “hold” si blocca anche l’installazione delle dipendenze correlate e credo comunque blocchi anche le successive revisioni(ma informatevi se per kde basta il pacchetto preso in esame perché io non sono sicuro).
Altra cosa che si potrebbe fare molto più pulita e che permetterebbe l’installazione delle future revisioni della versione bloccata è editare il file “/etc/apt/preferences” o nel caso non esistesse (vedi nella mia Debian) si potrebbe creare inserendo questi parametri :
Package: <pacchetto> Pin: <definizione del pin> Pin-Priority: <priorità del pin>
Per inserire i parametri corretti dovreste leggere l’apposita sezione del “apt howto sezione 3.10” direttamente dal sito Debian o installandolo sulla distro stessa (non l’avete ancora fatto?)
$ sudo apt-get install apt-howto-it
Comunque il tutto dovrebbe essere ridotto (Come detto prima credo basti kdebase a bloccare tutto ma qui bisognerebbe informarsi perché non l’ho mai fatto per kde) a :
Package: kdebase Pin: version 3.5.8* Pin-Priority: 1001
Per informazioni specifiche sull’uso rifarsi sempre all’ howto citato precedentemente.
Adesso non dovreste più preoccuparvi dando il quotidiano comando:
$ sudo apt-get update && sudo apt-get upgrade
Domande, critiche, migliorie, altri metodi, sono ben accetti, fatemi sapere che nella vita non si finisce mai di imparare!
Tutto il contenuto di questo 

Commenti»
Ecco questo e’ uno di quei pochi casi in cui la procedura grafica è (forse) più veloce e immediata, perlomeno con synaptic basta fare pacchetto->blocca versione.
Comunque una domanda che c’entra poco: il primo metodo può essere anche utilizzato per ottenere due configurazioni software identiche? del tipo faccio un’installazione minimale, importo la lista pacchetti da un altro computer e poi aggiorno?
ciao
ciao, con aptitude premi = e sei a posto, altrimenti piu veloce # echo -e “libc6 hold\nlibc6-dev hold” | dpkg –set-selections
ciao
@Murphy
Sarà cattiva abitudine ma “personalmente” non uso interfacce grafiche.
Si la procedura è quasi la stessa , solo che prima esporti il file poi lo riporti sull’altro pc poi usi “sudo apt-get dselect-upgrade”.
@davide
Ottimo la prima non la sapevo (non usando aptitude) la seconda ci sono diversi modi di fare la stessa cosa. Stasera appena torno da lavoro le inserisco entrambe
@Murphy
http://www.debianitalia.org/modules/wfsection/article.php?page=1&articleid=61
Hai fatto benissimo a creare un mini how-to…nel mio post dell’altra discussione ero stato troppo generico…dando per scontato che caste sapesse dove mettere le mani…..:)
>Package : kdebase
togliere lo spazio prima dei “:”, per evitare l’errore della mancanza dei “p
Package eader”.
@scakkia
Grazie della segnalazione: articolo modificato.