2015-01-31 935 views
10

我在ubuntu上安装了glibc 2.19版本。我还想在我的机器上安装2.3.4版本和2.19。如何安装多个版本的glibc?

默认情况下,所有的程序应该使用2.19,但只有特定的程序应该使用2.3.4。

的两个问题是:

  1. 我应该如何安装2.3.4在特定的位置,说/usr/glibc2.3.4?
  2. 我应该如何指定特定程序才能使用2.3.4版本?
+2

访问此:http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host,可能会帮助你 – 2015-02-01 04:48:07

+4

谁标记为“一般计算帮助”需要重新阅读网站关于什么是关闭/关于主题的指南。这是询问关于glibc - 一个编程库,它使问题在主题**中变成**。 – Qix 2015-02-01 04:55:13

+0

@GauravDave:谢谢你的指针。我在发布这个问题之前看过你提到的那篇文章。它讨论如何将exe与非默认版本的glibc链接起来。这部分回答了我的第二个问题,但不完全是因为我有许多通过许多makefile构建的exes。根据提到的文章的解决方案,我将不得不修改这些许多makefile以指定--rpath和--dynamic-linker选项。我想知道是否存在更好的解决方案。第一个问题也没有回答,即如何安装不同版本的glibc以与默认版本共存。 – UnSat 2015-02-02 16:01:36

回答

1

如果你只是想从glibc的你可以简单地使用LD_LIBRARY_PATH的其他版本的动态库。但是如果你想完全使用另一个版本,你需要对其他版本进行编译以获得静态部分。你也可能想要编译其他版本的glibc以获得所有的硬编码路径,指向你的安装目录来加载数据文件和插件(对于NSS和gconv)。使用--prefix=/usr/glibc2.3.4还会将动态加载器的soname设置为/usr/glibc2.3.4/lib/ld-linux.so.2(或类似取决于您的体系结构的内容),该加载器将被硬编码到与之链接的每个程序中。

1
  1. 提取里面/opt第二个版本。
  2. 使用LD_LIBRARY_PATH首先在/opt内查找库。