Как установить gpg2 как стандартную реализацию gpg на debian?

20

Моя установка Debian шла с gpg 1.4.12, в то время как я хотел бы использовать 2.0.19. Первый входит в комплект, gnupgа второй gnupg2. Насколько я знаю, они могут мирно сосуществовать, но я действительно хотел бы использовать их gpg2в качестве поставщика по умолчанию gpg. Я знаю, что у Debian есть update-alternativesнастройки по умолчанию, но я не могу найти ни упоминания, gpgни gnupgв нем.

Как я могу настроить это?

user329476
источник

Ответы:

13

Ответ

update-alternativesработает только если пакет явно использует систему альтернатив. gnupg и gnupg2 этого не делают.

Задний план

Обычно причина в том, что пользовательский интерфейс слишком сильно отличается, так что сценарии, использующие один инструмент, больше не будут работать, если вдруг будут запущены другие инструменты. Типичный пример здесь markdown. Каждая markdownреализация в Debian имеет совершенно разные параметры командной строки, поэтому система альтернатив там не используется.

gpggpg2Опции командной строки s и s, кажется, не сильно отличаются, но, возможно, выходные данные определенных действий или коды выхода в некоторых местах значительно различаются.

Одна вещь, где они различаются и что важно для минимальной установки и установочного носителя, это их зависимости. В то время как gnupgпакет имеет приоритет «стандарт» (то есть установлен в стандартной установке) и является зависимостью пакета apt, пакет gnupg2загружает еще несколько библиотек, которые в настоящее время имеют только приоритет «опционально».

В Debian есть два открытых отчета об ошибках, по одному для каждого пакета ( # 561540 для gnupg и # 483724 для gnupg2 ), запрашивающих использование системы альтернатив для gnupgи gnupg2.

В настоящее время один из этих отчетов об ошибках помечен wontfix, но этот тег называется «на данный момент», и есть некоторые подсказки, о которых нужно позаботиться в случае, если система альтернатив будет использоваться (или gnupg2станет стандартной) в будущем. ,

Как, если вы действительно хотите

Если вы действительно хотите, gpg2чтобы вам звонили gpg, если вы звонили , я рекомендую добавить соответствующий псевдоним в вашу оболочку, например, alias gpg=gpg2для оболочек, совместимых с bourne-shell. Не должно причинить большого вреда, но будет работать только при вызове из командной строки.

Если вы действительно хотите /usr/bin/gpgбыть gnupg2, вы можете сделать это с помощью dpkg-divert, например, переименования gpgв gpg1и затем gpg2в gpg. Файлы, переименованные в dpkg-divert, сохранят свое новое имя даже после обновления соответствующих пакетов.

Но имейте в виду : APT требует и использует gpgи может не ожидать, что это действительно так gpg2. Таким образом, вы можете сломать части вашей системы, если будете использовать dpkg-divertэтот способ. (Псевдонимы оболочки для пользователей без полномочий root хороши в этом отношении.)

Аксель Бекерт
источник
7

Очень скоро будет новый ответ на этот вопрос: используйте Debian 9 Stretch (будет выпущен примерно через 2 года ;-) или новее.

Предыстория: на DebConf15 администраторы пакетов Debian GnuPG объявили, что в будущем GnuPG 2.x будет /usr/bin/gpgв Debian, а команда GnuPG 1.x будет переименована /usr/bin/gpg1.

Вы по-прежнему не сможете переключиться /usr/bin/gpgна другую версию GnuPG по своему вкусу (см. Мой другой ответ по причине этого), но по крайней мере GnuPG 2.x будет реализацией по умолчанию в ближайшем будущем в Debian Unstable и Debian Testing и очень скоро в Debian Experimental.

Аксель Бекерт
источник
Дополнительное примечание, 2017-06-14: инструменты debian в последней стабильной версии все еще используют жестко закодированный gpg1 для внутреннего использования. Вилы Debian (Ubuntu, Mint), кажется, это исправить.
Петер говорит восстановить Монику
Дополнительное примечание, 2017-06-17: инструменты Debian в последней стабильной версии используют gpg2. (Да, я могу заглянуть в будущее. ;-) Шучу, но @peterh написал этот комментарий примерно за три дня до выхода следующего выпуска стабильной версии Debian, который изменит именно это.
Аксель
Хорошо, спасибо! Тем не менее, копание в gpg2 показалось мне довольно хорошим, почему вы так медленно обновляли версии gpg. Я думаю, что настоящая причина проблемы - GPG. Я думаю, возможно, проектная вилка кажется необходимой, как на счет этого? Если кто-то просто откроет вилку gpg2 на github и исправит все ее повреждения мозга, как он будет получен? Я думаю об этом, но он просто не стоит своей цены, если он навсегда останется забытым архивом.
Петер говорит восстановить Монику