Bloquear la desinstalación de un paquete en APT

8

En resumen, quiero poder configurar el paquete abcpara que:

  1. apt-get remove abc Debería fallar.
  2. apt-get purge abc Debería fallar.
  3. apt-get upgrade abc Deberia trabajar.

Si las dependencias del paquete cambian, por lo que abcdebería desinstalarse durante un dist-upgrade, estoy feliz de verme obligado a hacer algo y luego dist-upgradeotra vez.

Eliminado
fuente
Creé un metapaquete esencial que depende abc, pero fue eliminado de todos modos ... Creo que hay que volver a compilar la abcconfiguración Essential: yesy Priority: requiredendebian/control
Teresa e Junior
@TeresaeJunior Strange, un paquete esencial en deffunción del cual abcdebería haber funcionado. Fue defeliminado? ¿Ayuda si haces def Priority: required?
Gilles 'SO- deja de ser malvado'
@Gilles Exactamente, puse tanto Essential: yesy Priority: requiredy se eliminó con ninguna advertencia. Creé
Teresa e Junior
Veo que Essential: yesfue ignorado, por equivslo que no es suficiente para eso ... Tal vez si el paquete se crea con debuild, lo intentaré.
Teresa e Junior

Respuestas:

5

Realmente no hay nada para 'fijar' un paquete para poder evitar la eliminación, pero permitir la actualización.

Puede martillar una espiga en un paquete, no se puede eliminar, purgar, actualizar, lamer, nada ...

Pero es un poquito más complicado que la mayoría de las cosas.

Por ejemplo, deseamos fijar Firefox: (por supuesto, usaría el nombre completo correcto del paquete)

echo firefox hold | dpkg --set-selections

lo que haría inmortal a ' firefox '. PERO , tampoco se puede actualizar en este estado.

Eliminar el estado de retención es un poco más fácil, pero es una especie de gesto de barrido:

dpkg --clear-selections

elimina el estado HOLD de TODO! Entonces, si desea mantener algunos paquetes, es mejor que mantenga una lista para volver a aplicar más tarde

En realidad, es bastante agradable y fácil de realizar usando aptitude o synaptics , ya que tienen opciones de menú para guardar / desarmar un paquete, y se ocupan de toda la contabilidad detrás de escena. Recomiendo usar uno de esos (o cualquiera de los muchos otros administradores de paquetes que pueda encontrar)

Con Aptitude, el uso de la línea de comandos también es posible:

aptitude hold <package>
aptitude unhold <package>

Sin embargo, recuerde que tendrá que ' desarmar ' algo si quiere que se actualice. Aunque si usa el lado GUI de Aptitude, debería decirle si algo que se mantiene es actualizable

lornix
fuente
1
apt-getfelizmente desinstalará un paquete retenido.
bahamat