Impedire l'aggiornamento di un pacchetto: differenze tra le versioni
(Rimosso il tag OLD. La guida non è obsoleta, l'ho testata su Wheezy e funziona.) |
S3v (discussione | contributi) (aggiornamento: apt-mark & aptitude) |
||
Riga 5: | Riga 5: | ||
A volte per motivi di affidabilità o stabilità è necessario mantenere una specifica versione di un pacchetto precedentemente installato. | 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 | Lo scopo di questo Tip è proprio quello di congelare gli aggiornamenti di un pacchetto in modo da poter tranquillamente eseguire un <code>apt-get upgrade</code> senza aver timore di compromettere il nostro sistema. | ||
== | Per marcare un pacchetto come "hold" sono possibili diverse strade. | ||
Con dpkg, si esporta la lista dei pacchetti selezionati: | == apt-mark == | ||
Questo programma è fornito con la suite di pacchetti [[APT|apt]], per cui è sufficiente un: | |||
<pre># apt-mark hold nomepacchetto</pre> | |||
Ad esempio con: | |||
<pre># apt-mark hold vrms</pre> | |||
si impedirà l'aggiornamento del pacchetto <code>vrms</code> . <br/> | |||
Per sbloccare il pacchetto: | |||
<pre># apt-mark unhold nomepacchetto</pre> | |||
Per visualizzare la lista dei pacchetti con status "hold": | |||
<pre># apt-mark showhold</pre> | |||
Apt-mark è un wrapper di "dpkg --set-selections", per cui il file su cui opera è <code>/var/lib/dpkg/status</code> . | |||
== aptitude == | |||
Per contrassegnare un pacchetto come "hold", il comando è: | |||
<pre># aptitude hold nomepacchetto</pre> | |||
Per rimuovere lo stato di "hold": | |||
<pre># aptitude unhold nomepacchetto</pre> | |||
Per visualizzare la lista dei pacchetti bloccati: | |||
<pre># aptitude search ~ahold</pre> | |||
Notare che <code>aptitude</code> ha un proprio file in cui è conservato lo stato dei pacchetti, <code>/var/lib/aptitude/pkgstates</code> . | |||
== dpkg == | |||
{{Warningbox|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.<br/> | |||
Utilizzarle con la consapevolezza di ciò a cui si va incontro oppure utilizzare i metodi elencati in alto.}} | |||
Con <code>dpkg</code>, si esporta la lista dei pacchetti selezionati: | |||
<pre># dpkg --get-selections > selections.txt</pre> | <pre># dpkg --get-selections > selections.txt</pre> | ||
Poi si | Poi si modifica il file risultante <code>selections.txt</code>, cambiando la linea contenente il nome del pacchetto che si vuole tenere in "hold", per esempio nel caso di <code>mysql-server</code>, da questo: | ||
<pre>mysql-server install</pre> | <pre>mysql-server install</pre> | ||
a quest'altro: | a quest'altro: | ||
<pre>mysql-server hold</pre> | <pre>mysql-server hold</pre> | ||
Successivamente si salva il file, e ricarica il tutto dentro il database di dpkg con: | Successivamente si salva il file, e ricarica il tutto dentro il database di <code>dpkg</code> con: | ||
<pre># dpkg --set-selections < selections.txt</pre> | <pre># dpkg --set-selections < selections.txt</pre> | ||
Naturalmente lo status "hold" di un pacchetto potrebbe impedire l'aggiornamento di altre applicazioni da esso dipendenti. | Naturalmente lo status "hold" di un pacchetto potrebbe impedire l'aggiornamento di altre applicazioni da esso dipendenti. |
Versione delle 21:12, 12 mar 2014
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 di pacchetti 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
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.
Per maggiori informazioni, leggere la guida su come fare il downgrade di uno o più pacchetti.
Guida scritta da: Keltik | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |