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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili}}
==Introduzione==
==Introduzione==
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 un pacchetto in modo da poter tranquillamente eseguire un <code>apt-get upgrade</code> senza aver timore di compromettere il nostro sistema.<br/>
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.<br/>
Riga 17: Riga 17:
Per sbloccare il pacchetto:
Per sbloccare il pacchetto:
<pre># apt-mark unhold nomepacchetto</pre>
<pre># apt-mark unhold nomepacchetto</pre>
Le operazioni di "hold" e "unhold" richiedono che sia specificato il nome di un solo pacchetto alla volta.


Per visualizzare la lista dei pacchetti con status "hold":
Per visualizzare la lista dei pacchetti con status "hold":
Riga 25: Riga 26:
Per contrassegnare un pacchetto come "hold", il comando è:
Per contrassegnare un pacchetto come "hold", il comando è:
<pre># aptitude hold nomepacchetto</pre>
<pre># aptitude hold nomepacchetto</pre>
Si si vuole contrassegnare come "hold" due o più pacchetti, a differenza di "apt-mark", è possibile farlo utilizzando il comando una sola volta. Ad esempio, per due pacchetti:
<pre># aptitude hold pacchetto1 pacchetto2</pre>


Per rimuovere lo stato di "hold":
Per rimuovere lo stato di "hold":
Riga 33: Riga 36:


Notare che [[aptitude]] ha un proprio file in cui è conservato lo stato dei pacchetti, <code>/var/lib/aptitude/pkgstates</code>, per cui potrebbe capitare di contrassegnare un pacchetto come "hold" ma senza che [[apt-get]] se ne accorga.<br/>
Notare che [[aptitude]] ha un proprio file in cui è conservato lo stato dei pacchetti, <code>/var/lib/aptitude/pkgstates</code>, per cui potrebbe capitare di contrassegnare un pacchetto come "hold" ma senza che [[apt-get]] se ne accorga.<br/>
Si consiglia questo metodo solo se di 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.
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 ==

Versione delle 16:29, 12 set 2014

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.
È 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.

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

Le operazioni di "hold" e "unhold" richiedono che sia specificato il nome di un solo pacchetto alla volta.

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

Si si vuole contrassegnare come "hold" due o più pacchetti, a differenza di "apt-mark", è possibile farlo utilizzando il comando una sola volta. Ad esempio, per due pacchetti:

# aptitude hold pacchetto1 pacchetto2

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, per cui potrebbe capitare di contrassegnare un pacchetto come "hold" ma senza che apt-get se ne accorga.
Si consiglia questo metodo solo se si utilizza esclusivamente 'aptitude'. In caso si utilizzi anche 'apt-get', ricorrere ad apt-mark per evitare di imbattersi in comportamenti imprevisti.

dpkg

Warning.png ATTENZIONE
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.

Utilizzare "apt-mark" che, essendo un wrapper agli esatti comandi qui descritti, permette di compiere l'operazione in tutta sicurezza.


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

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.

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).




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

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