尝试在 Ubuntu 20 上从源代码安装最新的 gnupg。我的第一个 ./configure 发现缺少一些依赖项。我通过包管理器填充了其中一些,其他一些我从源代码安装。
现在我的./configure 以此结束:
GnuPG v2.3.2 has been configured as follows:
Revision: 3bf8d7e1b (15352)
Platform: GNU/Linux (x86_64-pc-linux-gnu)
OpenPGP: yes
S/MIME: yes
Agent: yes
Smartcard: yes (without internal CCID driver)
TPM: no
G13: no
Dirmngr: no
Keyboxd: no
Gpgtar: yes
WKS tools: yes
Protect tool: (default)
LDAP wrapper: (default)
Default agent: (default)
Default pinentry: (default)
Default scdaemon: (default)
Default keyboxd: (default)
Default tpm2daemon: (default)
Default dirmngr: (default)
Dirmngr auto start: yes
Readline support: no
LDAP support: n/a
TLS support: no
TOFU support: no
Tor support: only .onion
我认为看起来不错
所以我运行 sudo make,这里是最后几行输出:
make[2]: Entering directory '/home/ryan/Downloads/gnupg-2.3.2/kbx'
gcc -I/usr/local/include -DKEYBOX_WITH_X509=1 -Wall -Wno-format-zero-length -Wno-pointer-sign -Wpointer-arith -g -O2 -o kbxutil kbxutil-kbxutil.o kbxutil-keybox-util.o kbxutil-keybox-init.o kbxutil-keybox-blob.o kbxutil-keybox-file.o kbxutil-keybox-search.o kbxutil-keybox-update.o kbxutil-keybox-openpgp.o kbxutil-keybox-dump.o ../common/libcommon.a -L/usr/lib/x86_64-linux-gnu -lksba -lgpg-error -L/usr/local/lib -lgcrypt -L/usr/local/lib -lgpg-error
/usr/bin/ld: ../common/libcommon.a(libcommon_a-sysutils.o): in function `gnupg_access':
/home/ryan/Downloads/gnupg-2.3.2/common/sysutils.c:1263: undefined reference to `gpgrt_access'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:749: kbxutil] Error 1
make[2]: Leaving directory '/home/ryan/Downloads/gnupg-2.3.2/kbx'
make[1]: *** [Makefile:631: all-recursive] Error 1
make[1]: Leaving directory '/home/ryan/Downloads/gnupg-2.3.2'
make: *** [Makefile:551: all] Error 2
不太清楚如何解决这个问题。
答案1
不太清楚如何解决这个问题。
出色地,我个人的选择就是不要尝试让你陷入那种境地的事情……
$ sudo apt 安装 gnupg
... 更加简单,如果您发现不再需要或想要它,可以完全卸载。
虽然它可能不是最新的,但对于大多数功能来说,这很少是必需的 - 除非存在严重的错误或缺陷。
最后,除非您真正了解有关实际软件的“详细信息”,否则尝试编译复杂软件很容易失败。
正如往常一样,“知识就是王道”。
因此,如果您不具备专业知识,那么最好保持简单。
答案2
LD 路径中有一个冲突的旧版 libgpg-error,可能位于 /usr/lib/x86_64-linux-gnu/ 下。将其重新链接到新版本,例如:ln -sf /usr/local/lib/libgpg-error.so.0 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0
是的,由于所有依赖项,从源代码编译 gnupg 是一种糟糕的体验。