¿Cómo configurar gpg2 como implementación predeterminada de gpg en debian?

20

Mi instalación de Debian vino con gpg 1.4.12, mientras que me gustaría ejecutar 2.0.19. El primero viene en el paquete gnupgy el segundo gnupg2. Hasta donde yo sé, pueden coexistir pacíficamente, pero realmente me gustaría utilizarlo gpg2como el proveedor predeterminado de gpg. Sé que Debian tiene el update-alternativesque se usa para establecer valores predeterminados, pero no puedo encontrar ninguna mención gpgo gnupgen él.

¿Cómo puedo configurar esto?

usuario329476
fuente

Respuestas:

13

Responder

update-alternativessolo funciona si un paquete usa explícitamente el sistema de alternativas. gnupg y gnupg2 no lo hacen.

Fondo

Por lo general, la razón es que la interfaz de usuario difiere demasiado, de modo que los scripts que usan una herramienta ya no funcionarán si de repente se ejecutan las otras herramientas. Un ejemplo típico aquí es markdown. Cada markdownimplementación en Debian tiene opciones de línea de comandos bastante diferentes, por lo tanto, el sistema de alternativas no está en uso allí.

gpgLas gpg2opciones de la línea de comandos 'sy' no parecen diferir mucho, pero quizás el resultado de ciertas acciones o códigos de salida difiera significativamente en algunos lugares.

Una cosa en la que difieren y que es importante para instalaciones mínimas y medios de instalación, son sus dependencias. Si bien el gnupgpaquete tiene prioridad "estándar" (es decir, está instalado en una instalación estándar) y depende del paquete apt, el paquete gnupg2incorpora bastantes bibliotecas más que actualmente solo tienen prioridad "opcional".

Hay dos informes de errores abiertos en Debian, uno contra cada paquete ( # 561540 contra gnupg y # 483724 contra gnupg2 ), solicitando el uso del sistema de alternativas para gnupgy gnupg2.

Actualmente, uno de estos informes de errores está etiquetado wontfix, pero se dice que la etiqueta es "por ahora" y hay algunos indicios de lo que debe tenerse en cuenta en caso de que se use el sistema alternativo (o gnupg2se convierta en el predeterminado) en el futuro .

Cómo, en caso de que realmente quieras

Si realmente quieres gpg2que te llamen si llamaste gpg, te recomiendo agregar un alias acorde en tu shell, por ejemplo, alias gpg=gpg2para shells compatibles con bourne-shell. No debería hacer mucho daño, pero solo funcionará si se llama desde la línea de comandos.

Si realmente quiere /usr/bin/gpgser gnupg2, puede hacerlo con dpkg-divert, por ejemplo, cambiar el nombre gpga gpg1y luego gpg2a gpg. Los archivos renombrados con dpkg-divertmantendrán su nuevo nombre incluso después de las actualizaciones de los paquetes correspondientes.

Pero tenga cuidado: APT requiere y usa gpgy puede no esperar que sea realmente gpg2. Por lo tanto, puede romper partes de su sistema si lo usa de dpkg-divertesa manera. (Los alias de Shell para usuarios no root están bien con respecto a eso).

Axel Beckert
fuente
7

Habrá una nueva respuesta a esa pregunta muy pronto: use Debian 9 Stretch (que se lanzará en unos 2 años más o menos ;-) o más reciente.

Antecedentes: En DebConf15 los mantenedores de paquetes de Debian GnuPG anunció que en el futuro, GnuPG 2.x será /usr/bin/gpgen Debian y el comando GnuPG 1.x será renombrado a /usr/bin/gpg1.

Aún no podrá cambiar /usr/bin/gpga otra versión de GnuPG a su gusto (vea mi otra respuesta por la razón detrás de esto), pero al menos GnuPG 2.x será la implementación predeterminada en un futuro próximo en Debian Unstable y Debian Testing y muy pronto en Debian Experimental.

Axel Beckert
fuente
Nota al margen, 2017-06-14: las herramientas de Debian en la última versión estable todavía usan internamente gpg1 codificado. Las bifurcaciones de Debian (ubuntu, mint) parecen arreglarlo.
Peter dice reinstalar a Mónica el
Nota al margen, 2017-06-17: las herramientas de Debian en la última versión estable usan gpg2. (Sí, puedo ver el futuro. ;-) Es broma, pero @peterh escribió ese comentario justo como tres días antes del lanzamiento del próximo lanzamiento de Debian Stable, que cambia exactamente eso.
Axel Beckert
¡Bien gracias! Sin embargo, profundizar en el gpg2 me ha enseñado bastante bien, ¿por qué tardaste tanto en actualizar las versiones de gpg? Creo que la verdadera causa del problema es el gpg. Creo que tal vez se necesita una bifurcación de proyecto, ¿qué tal? Si alguien simplemente abriera una bifurcación gpg2 en el github y reparara todos sus daños cerebrales, ¿cómo se recibiría? Estoy pensando en hacerlo, pero simplemente no vale su precio si sigue siendo un archivo olvidado para siempre.
Peter dice reinstalar a Mónica el