¿Cómo puede deshacer (eliminar una retención) un paquete?

49

Utilicé Synaptic para bloquear la versión de pidgin-data: ¿cómo puedo cambiar el estado de holdnuevo a normal para que se actualice correctamente?

El PinningHowto dice que hacer un apt-get install packagenamedebería eliminar el hold, pero al ejecutarlo dpkg -l | grep ^htodavía se muestra como sostenido:

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

¿Cómo puedo deshacer correctamente el holdestado?

David Fraser
fuente

Respuestas:

59

Puedes usar sudo apt-mark unhold package_name. El paquete está cuya retención se anula y se devuelve una confirmación: Canceled hold on package_name..

DrA7
fuente
1
Su sudoproblema probablemente se deba a que escribió solo sudo echo "package_name install"|dpkg --set-selections. Esto elimina la echotubería siguiente, pero no la siguiente, de ahí el error de acceso. Tal vez puedas probar: sudo -E -- sh -c 'echo "package_name install"|dpkg --set-selections'. Esto sudo un sub-shell cuya línea de comando es echo "package_name install"|dpkg --set-selections.
Urhixidur
1
Mi respuesta estaba algo relacionada con la versión no editada de la respuesta a continuación, que anteriormente incluía exactamente el comando al que hice referencia. Sin embargo, la pregunta se usa específicamente apt-getcomo ejemplo y es por eso que respondí usando el apt-markque está incluido en el paquete apt . Sin embargo, es muy útil saber exactamente por qué los comandos dpkg no estaban funcionando.
DrA7
@ DrA7 package_name ya no se mantuvo. ¿Qué debería hacer ahora?
Dr.jacky
13

La forma correcta de eliminar la retención debería ser:

echo "package_name install"|sudo dpkg --set-selections
jazmines
fuente
2

Recupere un solo paquete llamado $ package_name:

echo $package_name install | dpkg --set-selections

Elimine todos los paquetes que se encuentran actualmente:

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

Ejecutar echo pidgin-data install | dpkg --set-selections(reemplazar pidgin-datacon el nombre del paquete retenido): esto cambiará el estado del paquete en installlugar de hacerlo hold.

David Fraser
fuente
1

Puede recuperar todos los paquetes APT con:

apt-mark showhold | awk '{ print $1, "install" }' | dpkg --set-selections
panticz.de
fuente