刚刚将我的 Buster 服务器升级到 Debian 11 Bullseye。不过,gpg
现在已经坏掉了。
apt update
失败了Unknown error executing apt-key
apt-key --list
失败了gpg: symbol lookup error: gpg: undefined symbol: gpgrt_set_confdir, version GPG_ERROR_1.0
- 任何运行尝试
gpg
都会失败并出现上述错误。
GPG 是2.2.27-2+deb11u2
来自 Debian Bullseye 官方存储库的版本。
网上发现的类似错误是关于从源代码构建 GPG 的,但是,我没有这样做,我只是从 Debian 存储库安装了二进制文件。
我尝试重新安装GPG相关的包没有效果。
我计划在这个问题解决后升级到 Debian 12,显然我现在不能这样做,因为无法验证包签名。
输出ldd /usr/bin/gpg
:
linux-vdso.so.1 (0x00007ffdd2fbb000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fc36ee46000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007fc36ee33000)
libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fc36ecf0000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fc36ebd0000)
libreadline.so.8 => /usr/local/lib/libreadline.so.8 (0x00007fc36eb79000)
libassuan.so.0 => /usr/local/lib/libassuan.so.0 (0x00007fc36eb65000)
libgpg-error.so.0 => /usr/local/lib/libgpg-error.so.0 (0x00007fc36eb41000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc36e96d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc36e829000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc36e807000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc36e801000)
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fc36e7d2000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc36ef7e000)
答案1
正如您所发现的,该错误是由以下库之一引起的:
libreadline.so.8 => /usr/local/lib/libreadline.so.8 (0x00007fc36eb79000)
libassuan.so.0 => /usr/local/lib/libassuan.so.0 (0x00007fc36eb65000)
libgpg-error.so.0 => /usr/local/lib/libgpg-error.so.0 (0x00007fc36eb41000)
要解决此问题,您应该删除/usr/local/lib
.当您执行此操作时,您可能想检查/usr/local/bin
和中的其他文件/usr/local/lib
;很可能有更多比 Debian 11 和 12 中的同等版本更旧的东西。