2016-05-17 208 views
0

我正在尝试运行在2.6.24内核上编译的真正旧应用程序。但每当我尝试运行的软件,我得到了无差错:Ubuntu无法找到glibc2.14

./deskewDeslant: /lib/libc.so.6: version `GLIBC_2.14' not found (required by ./deskewDeslant) 
./deskewDeslant: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./deskewDeslant) 

我曾尝试以下各项:

apt-get install libc6 

而且我得到的libc的最新版本已安装的消息。我目前使用libc版本2.7。如何将版本降级到2.14?

我试着从GNU网站的源代码编译版本2.14没有运气。

如何将我的gibc降级到2.14?什么是正确的过程?由于该程序是专门在2.6.24版本上编译的,因此我正在运行Ubuntu Hardy Heron。

回答

1

我想运行在2.6.24内核上编译的一个非常旧的应用程序。

内核版本无关紧要。

您的应用程序被编译使用GLIBC-2.14(或更新版本)的系统上,所以它没那么老GLIBC-2.14was released on 2011-06-01)。

./deskewDeslant: /lib/libc.so.6: version 'GLIBC_2.14' not found (required by ./deskewDeslant)

上面的错误意味着当前的GLIBC是太旧

./deskewDeslant: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by ./deskewDeslant)

上述错误意味着你libstdc++.so太旧

我目前使用libc版本2.7。如何将版本降级到2.14?

你相信版本2.72.14版本更新,但是真实的。你需要从2.7升级GLIBC2.14(或更新版本)。

一般情况下,一个给定的OS分配永远不会升级从它最初附带了一个GLIBC(打破旧的应用程序的风险被认为太高)。这就是为什么你的apt-get install libc6什么都不做。

因此,你的选择是:

  1. 升级整个分布,或
  2. 获得编译你的(旧)发行二进制,或者
  3. 安装的GLIBC更新的版本,或
  4. 在非默认位置安装GLIBC的较新版本。

选项#2是最简单的。

选项#1可能是最好的(你会得到安全修复程序,并且你下载的其他应用程序可以直接使用)。

选项#3风险很大:除了以微妙的方式潜在地破坏现有应用程序之外,如果在更新过程中犯了错误,则升级系统libc是使系统无法启动的最简单方法。

选项#4在技术上相当涉及。你可以找到更多的细节here