6 999
contributi
(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. |
contributi