¿Cómo puedo "retener" de manera confiable un paquete en Debian?

14

Tengo un paquete en Debian que ha sido parcheado manualmente (no es ideal, lo sé) que debo mantener en su versión actual para que las actualizaciones no sobrescriban los cambios parcheados (inspeccionaré manualmente y aplicaré actualizaciones de seguridad). Según tengo entendido, hay algunas maneras de abordar esto:

  • apt-pinning (ver apt_preferences(5))
  • aptitude hold
  • dpkg --set-selections
  • configurándolo con dselect?

He leído que una retención no afectará a otra (así, por ejemplo, usar aptitude holdno impedirá apt-geto dselectactualizará el paquete). ¿Qué debe hacerse para garantizar al 100% que las herramientas de Debian nunca actualizarán el paquete a menos que elimine la retención?

jrdioko
fuente
1
Solo un comentario, hace 9 años alguien creó un error en el sistema de errores de Debian sobre cómo realmente puede contener un paquete, y parece que hay (o hubo) algunos problemas al usar aptitude hold (LINK: bugs.debian.org/cgi-bin/ bugreport.cgi? bug = 146207 )
Luciano Facchinelli
1
Que alguien sería yo. :-). Todavía es un error abierto, aunque las personas que recientemente revivieron la aptitud dijeron que lo echarían un vistazo.
Faheem Mitha
1
Daniel Hartwig me escribió: "He estado al tanto de este problema con las retenciones desde que comencé a trabajar en la aptitud. Por el momento no lo he examinado detenidamente, ya que mi enfoque se ha centrado en hacer que funcionen los arcos múltiples. Su edad y su importancia intimidan un poco. También está la cuestión de que la aptitud "interpreta" los estados dpkg en el inicio para determinar qué cambios, si los hay, y cómo deberían incorporarse a su modelo de estado interno. Tenga la seguridad de que este no se quedará solo: - Siempre lo tengo en cuenta cuando observo áreas relacionadas del código ".
Faheem Mitha
1
bugs.debian.org/146207 supuestamente se ha corregido en la versión de aptitude subida a inestable.
Faheem Mitha

Respuestas:

7

aptitudey dpkgtienen funciones de retención separadas que no se respetarán entre sí, desafortunadamente. Por lo tanto, debe configurar ambos si usa ambas herramientas:

apt / dpkg: echo $PACKETNAME hold | dpkg --set-selections

aptitud: aptitude hold $PACKETNAME

scai
fuente
1
Parece que ahora hay algo apt-mark holdque, de acuerdo con help.ubuntu.com/community/… , hace lo mismo que dpkg --set-selections.
andyg0808
1

Un mejor enfoque en este caso particular (paquete parcheado) podría ser instalar la versión parcheada en /usr/local. Debian no tocará eso.

daniel kullmann
fuente
0

Hasta donde yo sé, aptitude hold <package>serán honrados por los demás a menos que usted ordene explícitamente que se actualice (como presionar + mientras el cursor está en el campo "paquetes actualizables" en aptitude).

Shadur
fuente
3
Parece que esto no es cierto, mira los comentarios anteriores.
jrdioko