Wie setze ich gpg2 als Standardimplementierung von gpg auf Debian?

20

Meine Debian-Installation kam mit gpg 1.4.12, während ich 2.0.19 ausführen möchte. Ersteres kommt in der Packung gnupgund Letzteres gnupg2. Sie können, soweit ich weiß, friedlich zusammenleben, aber ich würde sie wirklich gerne gpg2als Standardanbieter von verwenden gpg. Ich weiß, dass debian has update-alternativesverwendet wird, um Standardeinstellungen zu setzen, aber ich kann keine Erwähnung von gpgoder gnupgdarin finden.

Wie kann ich das einrichten?

user329476
quelle

Antworten:

13

Antworten

update-alternativesFunktioniert nur, wenn ein Paket das alternative System explizit verwendet. Gnupg und Gnupg2 nicht.

Hintergrund

Normalerweise liegt der Grund darin, dass sich die Benutzeroberfläche zu stark unterscheidet, sodass Skripte, die das eine Tool verwenden, nicht mehr funktionieren, wenn stattdessen plötzlich das andere Tool ausgeführt wird. Ein typisches Beispiel hierfür ist markdown. Jede markdownImplementierung in Debian hat ganz andere Befehlszeilenoptionen, daher wird das alternative System dort nicht verwendet.

gpgDie Befehlszeilenoptionen von und gpg2scheinen sich nicht wesentlich zu unterscheiden, aber möglicherweise unterscheiden sich die Ausgaben für bestimmte Aktionen oder Beendigungscodes an einigen Stellen erheblich.

Eine Sache, bei der sie sich unterscheiden und die für minimale Installationen und Installationsmedien wichtig ist, sind ihre Abhängigkeiten. Während das gnupgPaket die Priorität "standard" (dh in einer Standardinstallation installiert) und eine Abhängigkeit des Pakets aufweist apt, werden durch das Paket noch gnupg2einige Bibliotheken abgerufen, die derzeit nur die Priorität "optional" haben.

Es gibt zwei offene Fehlerberichte in Debian, einen gegen jedes Paket ( # 561540 gegen gnupg und # 483724 gegen gnupg2 ), die die Verwendung des alternativen Systems für gnupgund anfordern gnupg2.

Derzeit ist einer dieser Fehlerberichte mit wontfixeinem Tag versehen , aber das Tag soll "vorerst" lauten, und es gibt einige Hinweise, worauf zu achten ist, falls das alternative System in Zukunft verwendet wird (oder gnupg2das Standardsystem wird) .

Wie es geht, falls Sie es wirklich wollen

Wenn Sie wirklich gpg2angerufen werden möchten , wenn Sie angerufen haben gpg, empfehle ich, einen entsprechenden Alias ​​in Ihre Shell alias gpg=gpg2einzufügen , z. B. mit für Borowski-Shell kompatiblen Shells. Sollte nicht viel Schaden anrichten, funktioniert aber nur, wenn er über die Kommandozeile aufgerufen wird.

Wenn du wirklich /usr/bin/gpggnupg2 sein willst, kannst du das mit machen dpkg-divert, zB umbenennen gpgin gpg1und dann gpg2in gpg. Dateien, die mit umbenannt wurden dpkg-divert, behalten ihren neuen Namen auch nach Aktualisierungen der entsprechenden Pakete.

Aber seien Sie gewarnt: APT erfordert und verwendet gpgund erwartet möglicherweise nicht, dass dies tatsächlich der Fall ist gpg2. Auf dpkg-divertdiese Weise können Sie Teile Ihres Systems beschädigen. (Shell-Aliase für Nicht-Root-Benutzer sind in dieser Hinsicht in Ordnung.)

Axel Beckert
quelle
7

Es wird sehr bald eine neue Antwort auf diese Frage geben: Verwenden Sie Debian 9 Stretch (erscheint in ungefähr 2 Jahren ;-) oder neuer).

Hintergrund: Auf der DebConf15 gaben die Debian GnuPG- Paketbetreuer bekannt, dass GnuPG 2.x in Zukunft /usr/bin/gpgin Debian sein wird und der GnuPG 1.x-Befehl in umbenannt wird /usr/bin/gpg1.

Sie werden immer noch nicht in der Lage sein, /usr/bin/gpgauf eine andere GnuPG-Version nach Ihren Wünschen zu wechseln (siehe meine andere Antwort für den Grund dafür), aber in naher Zukunft wird mindestens GnuPG 2.x die Standardimplementierung in Debian Unstable und Debian Testing sein und sehr bald in Debian Experimental.

Axel Beckert
quelle
Randnotiz, 14.06.2017: Debian-Tools in der neuesten stabilen Version verwenden intern immer noch hartcodiertes gpg1. Debian-Forks (Ubuntu, Minze) scheinen das Problem zu beheben.
Peterh sagt, Monica
Randnotiz, 2017-06-17: Debian-Tools in der neuesten stabilen Version verwenden gpg2. (Ja, ich kann in die Zukunft schauen. ;-) Nur ein Scherz, aber @peterh schrieb diesen Kommentar genau wie drei Tage vor der Veröffentlichung der nächsten Debian Stable-Veröffentlichung, die genau das ändert.
Axel Beckert
Gut danke! Allerdings hat mir das Stöbern in gpg2 ziemlich gut beigebracht, warum Sie so langsam waren, um die gpg-Versionen zu aktualisieren. Ich denke, die wahre Ursache des Problems ist das GPG. Ich denke, vielleicht scheint eine Projektgabel nötig zu sein, wie wäre es damit? Wenn jemand einfach eine gpg2-Gabel auf dem Github öffnen und alle seine Gehirnschäden beheben würde, wie würde sie empfangen werden? Ich denke darüber nach, aber es ist einfach seinen Preis nicht wert, wenn es für immer ein vergessenes Archiv bleibt.
Peter sagt, dass Monica