20

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

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

2 ответа2

13

Ответ

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

Фон

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

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

Одна вещь, где они различаются и которая важна для минимальных установок и установочных носителей, это их зависимости. В то время как пакет 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .