升级到 yakkety 后,我无法安全更新或升级系统。apt update(以及 aptitude 和 synaptic 等)的输出始终相同:
GPG 错误:http://01.archive.ubuntu.com/ubuntuyakkety-updates InRelease:执行 apt-key 时出现未知错误
apt-key update
给我的执行:
gpg:致命:libgcrypt 太旧(需要 1.7.0,有 1.6.5)
相当奇怪...我尝试手动安装 libgcrypt20 但输出仍然相同...
所以我检查了一下,
dpkg -p libgcrypt20
得到了:
dpkg-query:软件包‘libgcrypt20’不可用
但是根据 synaptic 的说法,安装的是版本 1.7.2-2ubuntu1...
我已经尝试过了ldconfig
。
我无法在非安全模式下进行更新,因为我身处一个非民主的国家,我担心我的系统。
谢谢。 C。
答案1
我遇到了与此非常相似的错误。就我而言,我在 /usr/local/lib 中安装了另一个版本的 libgcrypt。
user@computer:~$ gpg --version
gpg: Fatal: libgcrypt is too old (need 1.7.0, have 1.6.4)
user@computer:~$ sudo ldd /usr/bin/gpg
linux-vdso.so.1 => (0x00007fff5b3b8000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4f1f95d000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f4f1f74d000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f4f1f44b000)
libgcrypt.so.20 => /usr/local/lib/libgcrypt.so.20 (0x00007f4f1f169000)
libreadline.so.7 => /lib/x86_64-linux-gnu/libreadline.so.7 (0x00007f4f1ef1f000)
libassuan.so.0 => /usr/local/lib/libassuan.so.0 (0x00007f4f1ed0a000)
libgpg-error.so.0 => /usr/local/lib/libgpg-error.so.0 (0x00007f4f1eaf6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4f1e72f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4f1e426000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4f1e208000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4f1e004000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f4f1ddd9000)
/lib64/ld-linux-x86-64.so.2 (0x0000564feff78000)
user@computer:~$ ls /usr/local/lib
libassuan.la libgcrypt.so libgpg-error.so.0 libksba.so.8.11.4
libassuan.so libgcrypt.so.20 libgpg-error.so.0.17.0 libnpth.la
libassuan.so.0 libgcrypt.so.20.0.4 libksba.la libnpth.so
libassuan.so.0.7.2 libgpg-error.la libksba.so libnpth.so.0
libgcrypt.la libgpg-error.so libksba.so.8 libnpth.so.0.0.5
我通过卸载之前手动安装的 gnupg 版本解决了这个问题
./configure
make
make uninstall
答案2
运行以下命令似乎对我有用。感谢上面的评论。
找出 gpg 的隐藏位置
$ which gpg
> /usr/local/bin/gpg
修复
指向路径which gpg
并ldconfig
沿着路径运行。
$ sudo ldconfig /usr/local/bin/gpg
笔记:ldconfig
没有返回任何东西,之后它才开始工作。
核实
$ gpg --version
> gpg (GnuPG) 2.2.17
> libgcrypt 1.8.4
> ...