Impedire l'aggiornamento di un pacchetto

Da Guide@Debianizzati.Org.
Versione del 22 giu 2014 alle 14:01 di HAL 9000 (discussione | contributi) (→‎Dowgrade di un pacchetto: rimosso link non più esistente (per via di precedente accorpamento))
Vai alla navigazione Vai alla ricerca
Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

A volte per motivi di affidabilità o stabilità è necessario mantenere una specifica versione di un pacchetto precedentemente installato.

Lo scopo di questo Tip è proprio quello di congelare gli aggiornamenti di un pacchetto in modo da poter tranquillamente eseguire un apt-get upgrade senza aver timore di compromettere il nostro sistema.

Per marcare un pacchetto come "hold" sono possibili diverse strade.

apt-mark

Questo programma è fornito con la suite apt, per cui è sufficiente un:

# apt-mark hold nomepacchetto

Ad esempio con:

# apt-mark hold vrms

si impedirà l'aggiornamento del pacchetto vrms .

Per sbloccare il pacchetto:

# apt-mark unhold nomepacchetto

Per visualizzare la lista dei pacchetti con status "hold":

# apt-mark showhold

Apt-mark è un wrapper di "dpkg --set-selections", per cui il file su cui opera è /var/lib/dpkg/status .

aptitude

Per contrassegnare un pacchetto come "hold", il comando è:

# aptitude hold nomepacchetto

Per rimuovere lo stato di "hold":

# aptitude unhold nomepacchetto

Per visualizzare la lista dei pacchetti bloccati:

# aptitude search ~ahold

Notare che aptitude ha un proprio file in cui è conservato lo stato dei pacchetti, /var/lib/aptitude/pkgstates .

dpkg

Warning.png ATTENZIONE
Queste operazioni sono pericolose e potenzialmente nefaste per l'intero sistema nel caso in cui si commettessero errori durante la modifica dei file o nel caso in cui gli editor utilizzati manifestassero problemi di salvataggio.

Utilizzarle con la consapevolezza di ciò a cui si va incontro oppure ricorrere ai metodi elencati in precedenza.


Con dpkg, si esporta la lista dei pacchetti selezionati:

# dpkg --get-selections > selections.txt

Poi si modifica il file risultante selections.txt, cambiando la linea contenente il nome del pacchetto che si vuole tenere in "hold", per esempio nel caso di mysql-server, da questo:

mysql-server install

a quest'altro:

mysql-server hold

Successivamente si salva il file, e ricarica il tutto dentro il database di dpkg con:

# dpkg --set-selections < selections.txt

Naturalmente lo status "hold" di un pacchetto potrebbe impedire l'aggiornamento di altre applicazioni da esso dipendenti.

Dowgrade di un pacchetto

Nel caso si abbia la necessità di dover utilizzare un pacchetto ad una versione precedente a quella attualmente utilizzata, è possibile effettuare un downgrade.




Guida scritta da: Keltik Swirl-auth60.png Debianized 60%
Estesa da:
Verificata da:
S3v 22:15, 12 mar 2014 (CET)
HAL 9000 15:47, 22 giu 2014 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized