如何安装多个版本的glibc?
How to install multiple versions of glibc?
我在 ubuntu 安装了 glibc 2.19 版。我还想在我的机器上安装 2.3.4 版本和 2.19。
默认情况下,所有程序都应使用 2.19,但只有特定程序应使用 2.3.4。
两个问题是:
- 我应该如何在特定位置安装 2.3.4,比如 /usr/glibc2.3.4?
- 如何指定特定程序使用 2.3.4 版本?
- 提取第 2 个版本
/opt
。
- 首先使用
LD_LIBRARY_PATH
在/opt
中查找库。
如果您只需要来自其他版本的 glibc 的动态库,您可以简单地使用 LD_LIBRARY_PATH。但是如果你想完全使用其他版本,你需要针对其他版本进行编译以获得静态部分。您可能还想编译其他版本的 glibc 以获取所有硬编码路径以指向您的安装目录以加载数据文件和插件(用于 NSS 和 gconv)。使用 --prefix=/usr/glibc2.3.4
还将动态加载程序的 soname 设置为 /usr/glibc2.3.4/lib/ld-linux.so.2
(或类似的东西,具体取决于您的体系结构),这将被硬编码到每个链接到它的程序中。
我在 ubuntu 安装了 glibc 2.19 版。我还想在我的机器上安装 2.3.4 版本和 2.19。
默认情况下,所有程序都应使用 2.19,但只有特定程序应使用 2.3.4。
两个问题是:
- 我应该如何在特定位置安装 2.3.4,比如 /usr/glibc2.3.4?
- 如何指定特定程序使用 2.3.4 版本?
- 提取第 2 个版本
/opt
。 - 首先使用
LD_LIBRARY_PATH
在/opt
中查找库。
如果您只需要来自其他版本的 glibc 的动态库,您可以简单地使用 LD_LIBRARY_PATH。但是如果你想完全使用其他版本,你需要针对其他版本进行编译以获得静态部分。您可能还想编译其他版本的 glibc 以获取所有硬编码路径以指向您的安装目录以加载数据文件和插件(用于 NSS 和 gconv)。使用 --prefix=/usr/glibc2.3.4
还将动态加载程序的 soname 设置为 /usr/glibc2.3.4/lib/ld-linux.so.2
(或类似的东西,具体取决于您的体系结构),这将被硬编码到每个链接到它的程序中。