我现在使用 Debian 开发 C++ 应用程序GPME。目前我读到有新版本的 GnuPG (2.1.10) 可用,它支持 ECC。我真的很想在我的应用程序中使用此功能。但当我检查系统中当前安装的版本时,我注意到我只有 GnuPG 1.4.18 可用。这提出了两个问题:
- 如何用现代版本的 GnuPG 替换稳定版?
- Gpgme 会自动使用这个新版本吗?还是有什么我必须首先考虑的事情?
答案1
GnuPG 分支
有GnuPG 的不同发行分支,现代、稳重、经典。
GnuPG 的三个不同版本得到积极维护:
GnuPG“modern”(2.1)是最新的开发版本,具有许多新功能。本公告是关于该版本的第一个版本的。
GnuPG“稳定”(2.0)是当前通用的稳定版本。这是大多数用户目前正在使用的。
GnuPG“经典”(1.4) 是旧的独立版本,最适合旧的或嵌入式平台。
GnuPG 经典且稳定
GnuPG 1.4,经典的基于旧的单片核心,仍将在一段时间内进行修补,但不会接收新的功能和算法。在 Debian(及其衍生版本)中,它以gnupg
软件包和gpg
二进制文件的形式提供。GnuPG 2.0是当前的稳定的发布。它的 Debian 软件包名称是gnupg2
,二进制文件安装为gpg2
.
GnuPG 现代
GnuPG 2.1被称为现代的更像是“实验性”版本,其功能需要在实践中进行测试,并且依赖 GnuPG 的其他应用程序也可以安装。它是适用于 Debian,但截至 2016-01-07不在稳定存储库中,仅在 Debian Sid 中(不稳定)。看”如何在运行“稳定”Debian 的计算机上安装“不稳定”Debian 中的一些软件包?”关于如何从不同的发行分支安装软件包,但请注意注意事项。我已经从 Unstable/Sid 成功运行 GnuPG 2.1 相当长一段时间了,同时安装了 Debian 测试分支。
请注意,OpenPGP 中的 ECC 加密技术尚未广泛传播和支持,因此您在与其他人通信时可能会遇到兼容性问题。无论如何,如果你想使用 ECC 曲线,请记住使用该--expert
标志能够创建 ECC 密钥。
路线图
在32C3的讲座中,GnuPG 维护者 Werner Koch 宣布 GnuPG 2.2 可能会在今年(很快)发布,并继承 GnuPG 2.0 的稳定状态,这也可能会导致很快被纳入 Debian 测试,也许已经在 Debian 9 中。遗憾的是,有我无法引用任何内容,讲座既没有录音,也没有幻灯片。
GPME
Debian 软件包libgpgme11
需要 GnuPG 2,这在使用 GnuPG 2.1 时也能满足。使用 GPGME 的应用程序应在可用时自动选择 GnuPG 2.1,而不是 GnuPG 2.0(无论如何,您不能通过 Debian 的包管理器同时拥有这两者)。
答案2
在 Debian 系统上,通常会安装两个版本的 GnuPG。您可以使用 来调用 2.x 版本gpg2
。