【问题标题】:Install glibc 11 on ubuntu precise(12.04)在 ubuntu 上安装 glibc 11 精确(12.04)
【发布时间】:2015-01-30 00:55:40
【问题描述】:

我有一个使用 ldd 版本在本地编译的应用程序 (Ubuntu EGLIBC 2.15-0ubuntu10.4) 2.15 我需要在带有 ldd version 2.12 的服务器中运行。因为它是在 QT 框架中构建的,并且我没有 root 访问权限来安装框架或升级 libc.so.6,所以我需要在我的机器上安装一个较旧的 glibc 来编译,就像在这个 post 中一样。从here 下载glibc-2.11.2.tar.gz 后,尝试使用命令./configure --prefix=/usr/oldlibc 安装它,它显示以下错误:

/bogdan/Downloads/safe/csu/crti.o
/tmp/ccHNBWLa.s: Assembler messages:
/tmp/ccHNBWLa.s: Error: open CFI at the end of file; missing .cfi_endproc directive
/tmp/ccHNBWLa.s: Error: open CFI at the end of file; missing .cfi_endproc directive
make[2]: *** [/home/bogdan/Downloads/safe/csu/crti.o] Error 1
make[2]: Leaving directory `/home/bogdan/Downloads/glibc-2.11/csu'
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/home/bogdan/Downloads/glibc-2.11'
make: *** [all] Error 2

我该怎么做才能正确安装libc.so.6

【问题讨论】:

  • 静态构建您的应用程序?不要像在正在运行的系统上那样降级 glibc。您可以在 vm 上安装 ubuntu10.04 并在那里构建。
  • @ElliottFrisch,我已经尝试过了,但是这次我在安装 opencv2 时遇到了问题。我没有找到任何有 opencv2 的存储库
  • 您的问题中未提及,但您可以获取源代码并构建它。降级 glibc 会破坏你拥有的任何 opencv2。
  • 为什么,确切地说,您认为您需要降级 glibc?这绝不是必要的。
  • @duskwuff,因为我的计算机上的 gnu c 库与服务器上的库之间存在兼容性问题。目前,当我尝试在服务器上执行程序时,它给了我一个错误。我现在无法访问服务器,但错误是 glibc version 15 is needed to run something

标签: linux ubuntu shared-libraries glibc


【解决方案1】:

我有一个使用 ldd 版本在本地编译的应用

你说ldd版本是错误的。 lddglibc一部分,而导致你悲伤的是glibc 版本。 ldd 本身与这里的任何东西没有有关。

/tmp/ccHNBWLa.s: Error: open CFI at the end of file; missing .cfi_endproc directive

发生这种情况是因为旧的glibc-2.11 无法使用您系统上的新gcc 构建。

您可以破解glibc 源并修复该问题,您可以构建和安装旧的gcc 并使用it 构建glibc-2.11,或者您可以设置chroot默认安装旧 glibc 的环境。

chroot 解决方案可能是最简单的,因为您可以简单地在其中安装预构建(旧)包。

另一个“简单”的选择是在 VM 中构建所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2012-12-10
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多