Impedire l'aggiornamento di un pacchetto: differenze tra le versioni

(aggiornamento: apt-mark & aptitude)
 
(19 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili}}
__TOC__
==Introduzione==
A volte per motivi di affidabilità o stabilità è necessario mantenere una specifica versione di un [[pacchetto]] precedentemente installato.


==Introduzione==
Lo scopo di questa guida è 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.<br/>
A volte per motivi di affidabilità o stabilità è necessario mantenere una specifica versione di un pacchetto precedentemente installato.
È importante sottolineare che lo status di "hold" di un pacchetto non si applicherà alle sue [[dipendenze]] e che potrebbe impedire l'aggiornamento di altre applicazioni da esso dipendenti se queste richiedono l'aggiornamento del pacchetto bloccato ad una versione successiva a quella installata.


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: [[apt-mark]], [[aptitude]], [[dpkg]] (sconsigliato).


Per marcare un pacchetto come "hold" sono possibili diverse strade.
== apt-mark ==
== apt-mark ==
Questo programma è fornito con la suite di pacchetti [[APT|apt]], per cui è sufficiente un:
Questo programma è fornito con la suite [[APT|apt]], per cui è sufficiente un:
<pre># apt-mark hold nomepacchetto</pre>
<pre># apt-mark hold nomepacchetto/i</pre>
per contrassegnare come "hold" uno o più pacchetti.<br/>
Ad esempio con:
Ad esempio con:
<pre># apt-mark hold vrms</pre>
<pre># apt-mark hold vrms xorg</pre>
si impedirà l'aggiornamento del pacchetto <code>vrms</code> . <br/>
si impedirà l'aggiornamento del pacchetto <code>vrms</code> e del [[metapacchetto]] <code>xorg</code> . <br/>


Per sbloccare il pacchetto:
Per sbloccare il/i pacchetto/i:
<pre># apt-mark unhold nomepacchetto</pre>
<pre># apt-mark unhold nomepacchetto/i</pre>


Per visualizzare la lista dei pacchetti con status "hold":
Per visualizzare la lista dei pacchetti con status "hold":
<pre># apt-mark showhold</pre>
<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> .
Apt-mark è un wrapper di "dpkg --set-selections", per cui il file su cui opera è <code>/var/lib/dpkg/status</code> . In questo file, lo status di "hold" è evidenziato dalla seguente riga:
Status: '''hold''' ok installed
 
== aptitude ==
== aptitude ==
Per contrassegnare un pacchetto come "hold", il comando è:
Per marcare uno o più pacchetti come "hold", il comando è:
<pre># aptitude hold nomepacchetto</pre>
<pre># aptitude hold nomepacchetto/i</pre>


Per rimuovere lo stato di "hold":
Per rimuovere lo stato di "hold":
<pre># aptitude unhold nomepacchetto</pre>
<pre># aptitude unhold nomepacchetto/i</pre>


Per visualizzare la lista dei pacchetti bloccati:
Per visualizzare la lista dei pacchetti bloccati:
<pre># aptitude search ~ahold</pre>
<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> .
Notare che [[aptitude]] ha un proprio file in cui è conservato lo stato di "hold" dei pacchetti, <code>/var/lib/aptitude/pkgstates</code>, per cui potrebbe capitare di marcare un pacchetto come "hold" ma senza che [[apt-get]] se ne accorga.<br/>
Lo status di "hold" per il pacchetto sarà contrassegnato, all'interno di questo file, da:
<pre>
...
State: 2
...
</pre>
Si consiglia questo metodo solo se si utilizza <u>esclusivamente</u> 'aptitude'. In caso si utilizzi anche 'apt-get', ricorrere ad <code>apt-mark</code> per evitare di imbattersi in comportamenti imprevisti.


== dpkg ==
== 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/>
{{Warningbox|Le operazioni che verranno descritte 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.}}
Utilizzare "apt-mark" che, essendo un wrapper agli esatti comandi qui descritti, permette di compiere l'operazione in tutta sicurezza.}}


Con <code>dpkg</code>, si esporta la lista dei pacchetti selezionati:
Con [[dpkg]], si esporta la lista dei pacchetti selezionati:
<pre># dpkg --get-selections > selections.txt</pre>
<pre># dpkg --get-selections > selections.txt</pre>


Riga 47: Riga 57:
Successivamente si salva il file, e ricarica il tutto dentro il database di <code>dpkg</code> 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.


== Dowgrade di un pacchetto ==
== 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]].<br/>
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]].
 
== Pinning ==
I metodi descritti in precedenza sono equivalenti all'utilizzo di una configurazione di [[pinning]] per il pacchetto con "Pin-Priority: -1" (o qualunque altro numero negativo).


{{Autori
{{Autori
|Autore=[[Utente:Keltik|Keltik]]
|Autore=[[Utente:Keltik|Keltik]]
|Verificata_da=
:[[Utente:S3v|S3v]] 22:15, 12 mar 2014 (CET)
:[[Utente:HAL 9000|HAL 9000]] 11:15, 31 ago 2014 (CEST)
|Numero_revisori=2
}}
}}


[[Categoria:Apt]]
[[Categoria:Apt]]
6 999

contributi