编辑:
操作系统:Debian GNU/Linux 11(靶心)
Debian 版本:11.5
我尝试使用安装多个软件包dpkg somefile.deb
,但由于缺乏互联网连接而存在依赖性问题,因此尚未完成。
现在我运行“apt update”或“apt-get update”,出现以下错误:
apt-get: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /lib/x86_64-linux-gnu/libstdc++.so.6)
apt-get: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /lib/x86_64-linux-gnu/libstdc++.so.6)
apt-get: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /lib/x86_64-linux-gnu/libstdc++.so.6)
答案1
罪魁祸首是libstdc++6
升级到 Debian testing/sid 的软件包,导致apt-get
C++ 应用程序无法再工作。
2022-10-18 10:37:01 upgrade libstdc++6:amd64 10.2.1-6 12.2.0-5 2022-10-18 10:37:01 status triggers-pending libc-bin:amd64 2.31-13+deb11u4 2022-10-18 10:37:01 status half-configured libstdc++6:amd64 10.2.1-6 2022-10-18 10:37:01 status unpacked libstdc++6:amd64 10.2.1-6 2022-10-18 10:37:01 status half-installed libstdc++6:amd64 10.2.1-6 2022-10-18 10:37:01 status unpacked libstdc++6:amd64 12.2.0-5
apt-get
不再可用,但它留下了dpkg
一个 C 应用程序,因此不受影响,以解决问题。
因此,恢复您尝试安装的不适合 Debian 11 的内容:很可能lokinet-bin
(其后缀表明它不适用于 Debian 11,而是未来的 Debian 12)。
dpkg --purge lokinet-bin
从带外信息下载正确的libstdc++6
包。在任何其他功能性的Debian 11 系统这可以工作:
apt-get --print-uris download libstdc++6
例如可以返回(今天):
'http://ftp.us.debian.org/debian/pool/main/g/gcc-10/libstdc%2b%2b6_10.2.1-6_amd64.deb' libstdc++6_10.2.1-6_amd64.deb 492540 SHA256:5c155c58935870bf3b4bfe769116841c0d286a74f59eccfd5645693ac23f06b1
然后可以从任何镜像(包括上面的镜像)下载该镜像,或者从其他系统下载然后传输,或者如果有可用的下载工具,则直接在损坏的系统上下载:
curl -JRLO 'http://ftp.us.debian.org/debian/pool/main/g/gcc-10/libstdc%2b%2b6_10.2.1-6_amd64.deb'
并与上面的校验和进行比较:
$ sha256sum libstdc%2b%2b6_10.2.1-6_amd64.deb
5c155c58935870bf3b4bfe769116841c0d286a74f59eccfd5645693ac23f06b1 libstdc%2b%2b6_10.2.1-6_amd64.deb
校验和匹配。
您还可以通过以下链接获取它:https://packages.debian.org/bullseye/libstdc++6或来自https://snapshot.debian.org/
最后将其安装到损坏的系统上的有问题的版本上:
dpkg -i libstdc%2b%2b6_10.2.1-6_amd64.deb
apt-get
现在应该可以使用了。
在再次尝试您尝试过的操作之前,请查看此 Debian wiki:不要破坏Debian尤其是不要制作 FrankenDebian,因为这正是本例中发生的情况。