我不想在 raspbian 中使用标准 gpg 版本,它已经有近 4 年的历史了。我必须手动编译所有库。这工作正常,但当我编译 gpg 时,它说“ libgcrypt 太旧了,需要 1.7.0 有 1.6.4 ”,即使我安装了 libgcrypt 1.8.1 。所以我用“make uninstall”卸载了gpg和libgcrypt并再次编译它们。没有成功。这两天我一直在尝试寻找解决方案。 ubuntu 论坛上有一些论坛帖子,但帮助不大。
当我上次编译它时,它给出了一个错误:
collect2: error: ld returned 1 exit status Makefile:949: recipe for target 't-stringhelp' failed make[3]: *** [t-stringhelp] Error 1 make[3]: Leaving directory '/home/pi/gnupg-2.2.1/common' Makefile:816: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/home/pi/gnupg-2.2.1/common' Makefile:590: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/pi/gnupg-2.2.1' Makefile:509: recipe for target 'all' failed make: *** [all] Error 2
答案1
将评论转换为答案:
从您的评论来看,您使用的是oldstable
Raspbian 版本。您应该知道,oldstable 的更新频率较低,预计在下一个稳定版本发布后大约一年内仍会保留在 Debian 安全团队的视野中。
因此,除非有特殊原因需要继续使用,否则不应使用 Debian oldstable。所有 Raspbian 用户都应该更改他们的sources.list
以反映当前 Raspbian 新稳定版本的发布,拉紧
GNUPG 2.2 系列也是 GNUPG 的新稳定版。 2.1 系列及之前版本于 2017 年 12 月底支持。
GnuPG 团队很高兴地宣布推出新版本的 GnuPG:版本 2.2.0。请参阅下面的新功能和错误修复列表。此版本标志着新的长期支持系列的开始,以取代 2.0.x 系列,该系列将于 2017 年 12 月 31 日终止。
我们很高兴地宣布推出新的 GnuPG 版本:版本 2.2.1。这是一个维护版本;请参阅下面的已修复错误列表。
至于问题:“升级到 Stretch 会破坏一切吗?”
我建议购买第二张 SD 卡,在该新卡上安装新的稳定版 Raspbian,并复制所有个人应用程序和数据。这将允许您测试新的稳定版本,同时不会干扰旧的稳定安装。
附录
当然,这个答案并不能直接回答你的问题“我如何构建 GNUPG?”
要获得此问题的简单易懂的答案,您可以按照 GNUPG 的 Webkey 安装页面上包含的说明进行操作:
GNUPG 说:
安装最新 GnuPG 版本的最简单方法是使用 Speedo,它会下载、验证和构建所有依赖包。为此,首先解压缩 tarball:
$ tar xjf gnupg-2.1.15.tar.bz2
在非 GNU 系统上,您可能需要使用它:
$ zcat gnupg-2.1.15.tar.bz2 | tar xf -
然后运行:
$ make -f gnupg-2.1.15/build-aux/speedo.mk INSTALL_PREFIX=. \
speedo_pkg_gnupg_configure='--enable-gpg2-is-gpg \
--disable-g13 --enable-wks-tools' native
如果您遇到错误,您可能缺少一些开发工具;安装它们并重试。如果一切成功,您会注意到 webkey 的主目录下有一堆新目录:
PLAY bin include lib libexec sbin share swdb.lst swdb.lst.sig 或者您可以删除不再需要的内容:
$ rm -rf PLAY include lib swdb.*
要使用新安装的 GnuPG,您需要先运行它(您应该将其添加到 webkey 的 .profile 或 .bashrc):
PATH="$HOME/bin:$PATH"
LD_LIBRARY_PATH="$(pwd)/lib"
export LD_LIBRARY_PATH
结束构建指令
当然,您将使用最新版本的 GNUPG,它不再是 2.1.15