如何修复此错误:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found
平台:
Linux alef 3.2.0-4-amd64 #1 SMP Debian 3.2.35-2 x86_64 GNU/Linux
答案1
这意味着该程序是针对 glibc 版本 2.14 编译的,并且需要该版本才能运行,但您的系统安装了旧版本。您需要针对系统上的 glibc 版本重新编译该程序,或者安装较新版本的 glibc(Debian 中的“libc6”包)。
Debian 在“实验”存储库中有 glibc 2.16,但重新编译该程序是更安全的选择。Glibc 是一切依赖,因此升级它可能会产生深远的影响。尽管 Debian 的 glibc 2.16 软件包可能没有问题,但它位于实验性存储库中,这意味着它还没有接受太多测试。
答案2
我已经发布了我的解决方案这里,转载给大家参考。
在我的情况下,当我尝试在 Debian Wheezy(默认安装 glibc 2.13)上使用 GLIBC_2.14 运行应用程序(在 Ubuntu 12.04 LTS 上编译)时出现错误。
我使用一种棘手的方法来运行它,并得到了正确的结果:
运行 dpkg 命令将它们安装到目录中(例如 /home/user/fakeroot/):
$ dpkg -x libc6-dev_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/ $ dpkg -x libc6_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
使用指定的 LD_LIBRARY_PATH 运行命令:
$ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
我的应用程序仅使用 GLIBC_2.14 中的 memcpy(),它可以工作。
我不知道它是否能成功运行于其他应用程序。希望它能有所帮助。
答案3
dpkg
如果由于 libc 错误而无法使用,请尝试/bin/busybox sh
。Busybox 是静态链接的,因此可以与损坏的 libc6 一起使用。
然后你可以使用 wget 从中获取 libc6 debhttps://packages.ubuntu.com,,ar x libc6*.deb
并且unxz data.tar.xz
(小心!)tar vxf data.tar -C /
让事情重新开始。
(搞笑的背景:我编写了一个 python3 脚本来将软件包降级到发行版,以便使部分执行发布更新升级的系统恢复到升级前的状态——我忘记将 libc6 留到最后)