如何修复“ /lib/x86_64-linux-gnu/libc.so.6:找不到版本'GLIBC_2.14'”?


29

如何解决此错误:

/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

Answers:


30

这意味着该程序是针对glibc 2.14版编译的,它需要该版本才能运行,但是您的系统已安装了较旧的版本。您将需要根据系统上的glibc版本重新编译程序,或者安装较新版本的glibc(Debian中的“ libc6”软件包)。

Debian在“实验”存储库中有glibc 2.16,但是重新编译程序是更安全的选择。Glibc是一切都依赖的库,因此对其进行升级可能会产生深远的影响。尽管Debian的glibc 2.16软件包可能没有什么问题,但是它在实验性存储库中这一事实意味着它没有受到太多的测试。


4
这是一个很酷的答案,我理解每个句子:)。如何在我的机器下重新编译它(该应用程序是tidesdk开发人员),任何引用?但是我要接受这个答案,很好。
xliiv 2013年

升级到debian jessie在这里有所帮助。
cweiske 2013年

5
这是否意味着您确切需要glibc的2.14版本,或者至少需要2.14 版?
菲利普(Philippe)2013年

20

我已经在这里发布了我的解决方案,然后重新发布以供参考。

在我的情况下,当我尝试在Debian Wheezy(默认情况下安装glibc 2.13)上使用GLIBC_2.14运行应用程序(在Ubuntu 12.04 LTS上编译)时出现错误。

我使用一种棘手的方式运行它,并获得正确的结果:

  1. 从Ubuntu 12.04 LTS 下载libc6libc6-dev

  2. 运行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/
    
  3. 使用指定的LD_LIBRARY_PATH运行命令:

    $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
    
  4. 我的应用程序仅使用GLIBC_2.14中的memcpy(),并且可以正常工作。

我不知道它是否可以成功用于其他应用程序。希望对您有所帮助。


0
apt-get update && apt-get -reinstall install vesta-nginx vesta-php

那应该解决它而不破坏操作系统。  


2
为什么?你能解释一下吗?如何vesta(虚拟主机控制面板)相关的问题吗?
iX3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.