gpg:致命:libgcrypt 太旧(需要 1.7.0,有 1.6.5)

gpg:致命:libgcrypt 太旧(需要 1.7.0,有 1.6.5)

升级到 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 gpgldconfig沿着路径运行。

$ sudo ldconfig /usr/local/bin/gpg

笔记ldconfig没有返回任何东西,之后它才开始工作。

核实

$ gpg --version
> gpg (GnuPG) 2.2.17
> libgcrypt 1.8.4
> ...

相关内容