Come puoi annullare (rimuovere una sospensione) un pacchetto?


49

Ho usato Synaptic per bloccare la versione di pidgin-data- come posso cambiare lo stato da holdindietro a normale, in modo che venga aggiornato correttamente?

Il PinningHowto dice che facendo una apt-get install packagenamedovrebbe rimuovere la hold, ma in esecuzione dpkg -l | grep ^hancora spettacoli come tenuta:

hi  pidgin-data                                                 1:2.10.6-0ubuntu1+pidgin1.12.04                            multi-protocol instant messaging client - data files

Come posso annullare correttamente lo holdstato?

Risposte:


59

È possibile utilizzare sudo apt-mark unhold package_name. Il pacchetto è unheld e restituisce una conferma: Canceled hold on package_name..


1
Il tuo sudoproblema è probabilmente perché hai appena scritto sudo echo "package_name install"|dpkg --set-selections. Questo sostituisce la seguente echoma non la seguente pipe, quindi l'errore di accesso. Prova a modificare: sudo -E -- sh -c 'echo "package_name install"|dpkg --set-selections'. Questo sudo una sotto-shell la cui riga di comando è echo "package_name install"|dpkg --set-selections.
Urhixidur,

1
La mia risposta era in qualche modo correlata alla versione inedita della risposta qui sotto che precedentemente includeva esattamente il comando a cui ho fatto riferimento. Comunque la domanda usa specificamente apt-getcome esempio ed è per questo che ho risposto usando apt-markquale è incluso nel pacchetto apt . È comunque molto utile sapere esattamente perché i comandi dpkg non funzionavano.
DrA7,

@ DrA7 nome_pacchetto non era già in attesa. Cosa dovrei fare ora?
Dr.jacky,

13

Il modo corretto per rimuovere il blocco dovrebbe essere:

echo "package_name install"|sudo dpkg --set-selections

2

Annulla un singolo pacchetto chiamato $ nome_pacchetto:

echo $package_name install | dpkg --set-selections

Annulla tutti i pacchetti attualmente in possesso:

dpkg --get-selections | grep hold | awk '{ print $1, "install" }' | dpkg --set-selections

1

Esegui echo pidgin-data install | dpkg --set-selections(sostituisci pidgin-datacon il nome del pacchetto trattenuto): questo cambierà lo stato del pacchetto installpiuttosto che hold.


1

Puoi annullare tutti i pacchetti APT con:

apt-mark showhold | awk '{ print $1, "install" }' | dpkg --set-selections
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.