【问题标题】:How to install multiple versions of glibc?如何安装多个版本的glibc?
【发布时间】:2015-03-31 04:32:48
【问题描述】:

我在 ubuntu 上安装了 glibc 2.19 版。我还想在我的机器上安装 2.3.4 版本和 2.19。

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

这两个问题是:

  1. 我应该如何将 2.3.4 安装在特定位置,例如 /usr/glibc2.3.4?
  2. 我应该如何指定特定程序以使用 2.3.4 版本?

【问题讨论】:

  • 访问这个:stackoverflow.com/questions/847179/…,可能对你有帮助
  • 标记为“通用计算帮助”的人需要重新阅读该站点关于什么是关闭/打开主题的指南。这是在询问 glibc - 一个编程库,它使问题直接落入主题
  • @GauravDave:感谢您的指点。在我发布问题之前,我已经看过您提到的帖子。它讨论了如何将 exe 与 glibc 的非默认版本链接。这部分回答了我的第二个问题,但不完全回答,因为我有 100 个通过这么多 makefile 构建的 exe。根据引用帖子中的解决方案,我将不得不修改那些许多 makefile 以指定 --rpath 和 --dynamic-linker 选项。我想知道是否存在更好的解决方案。第一个问题也没有回答,即如何安装不同版本的 glibc 以与默认版本共存。
  • 我曾经尝试安装两个版本的 glibc(确切地说,尝试从 Ubunto 将更新版本的 glibc 安装到我的 centos 附带较低版本的 glibc。)但我没有这样做。就我而言,我猜想在构建过程中更改一些需要较新版本的 glibc 的配置来解决问题。具体情况我忘记了。对不起。

标签: c ubuntu glibc


【解决方案1】:
  1. /opt中提取第二个版本。
  2. 首先使用LD_LIBRARY_PATH/opt 中查找库。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 2020-07-11
      • 2014-05-02
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      相关资源
      最近更新 更多