【问题标题】:Glibc 2.7 configure error programs too oldGlibc 2.7 配置错误程序太旧
【发布时间】:2013-10-17 19:22:06
【问题描述】:

当我在 R 中加载 GenomicFeatures 包时,它会弹出一条错误消息:

Loading required package: IRanges
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/home/caohf/R/x86_64-unknown-linux-gnu-library/2.15/IRanges/libs/IRanges.so':
  /lib64/libc.so.6: version `GLIBC_2.7' not found (required by /home/caohf/R/x86_64-unknown-linux-gnu-library/2.15/IRanges/libs/IRanges.so)
Error: package ‘IRanges’ could not be loaded

所以我想安装glibc2.7,源码是从这个site下载的。

我将源配置为非root:

mkdir build
cd build
../configure --prefix=/home/cao/bin

屏幕出现配置错误:

检查构建系统类型... x86_64-unknown-linux-gnu
检查主机系统类型... x86_64-unknown-linux-gnu
配置:为插件 nptl 运行配置片段
检查 sysdep 目录... sysdeps/x86_64/elf nptl/sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/wordsize-64 nptl/sysdeps/unix/sysv/ linux nptl/sysdeps/pthread sysdeps/pthread sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet nptl/sysdeps/unix/sysv sysdeps/unix/sysv sysdeps/unix/ x86_64 nptl/sysdeps/unix sysdeps/unix sysdeps/posix sysdeps/x86_64/fpu nptl/sysdeps/x86_64 sysdeps/x86_64 sysdeps/wordsize-64 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt- 32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic 检查与 BSD 兼容的安装... /usr/bin/install -c
检查 ln -s 是否有效...是
检查 gcc... gcc
检查目标文件的后缀... o
检查我们是否正在使用 GNU C 编译器...是
检查 gcc 是否接受 -g... 是
检查 gcc 选项以接受 ISO C89...不需要
检查如何运行 C 预处理器... gcc -E
检查 g++...g++
检查我们是否正在使用 GNU C++ 编译器...是
检查 g++ 是否接受 -g... 是
检查 ranlib...ranlib
检查 /usr/libexec/binutils220/as 是否是 GNU as... 是
检查 ld 是否是 GNU ld...是
检查 /usr/libexec/binutils220/as... /usr/libexec/binutils220/as
检查 /usr/libexec/binutils220/as... 2.20.51.0.2 的版本,错误
检查 ld...ld
检查 ld... 2.17.50.0.6 的版本,好的
检查密码... /bin/pwd
检查 gcc... gcc
检查 gcc 的版本... 4.4.6,好的
检查 gnumake... 否
检查 gmake... gmake 检查 gmake 的版本... 3.81,好的
检查 gnumsgfmt...否
检查 gmsgfmt... 否
正在检查 msgfmt... msgfmt
检查 msgfmt 的版本... 0.14.6,好的
检查 makeinfo...否
检查 sed... sed
检查 sed 的版本... 4.1.5,好的
正在检查 autoconf... autoconf
检查 autoconf 是否有效...是
配置:错误:
这些关键程序丢失或太旧:as
检查安装文件以获取所需的版本。

以下是INSTALL文件(和我系统中的版本)中推荐的编译工具:

1 GNU make 3.79 或更新版本
我的系统:

GNU Make 3.81

2 GCC 3.4 或更新版本,推荐 GCC 4.1
我的系统:

gcc 版本 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)

3 GNU binutils 2.15 或更高版本
我不知道如何检查 binutils 的版本,但是

 as -v
 ld -v

GNU 汇编器版本 2.17.50.0.6-12.el5 (x86_64-redhat-linux) 使用 BFD 版本 2.17.50.0.6-12.el5 20061020
GNU ld 版本 2.17.50.0.6-12.el5 20061020

4 GNU texinfo 3.12f
我也没有版本?需要帮助

5 GNU awk 3.0 或更高版本
我的系统:

GNU awk 3.1.5

6 Perl 5
我的:

这是为 x86_64-linux-thread-multi 构建的 perl,v5.10.1 (*)

7 GNU sed 3.02 或更新版本
我的:

GNU sed 4.1.5 版

8 GNU autoconf 2.53 或更高版本
我的:

autoconf (GNU Autoconf) 2.59

9 GNU gettext 0.10.36 或更高版本 我的:

gettext (GNU gettext-runtime) 0.14.6

我在:

CentOS 5.4 版(最终版)
Linux iodel-01 2.6.18-164.6.1.el5

我是否必须安装较新版本的 glibc,我担心系统的软件包对于较新的软件包来说太旧了。 我怎么能弄明白?谢谢

【问题讨论】:

    标签: c++ linux gcc glibc


    【解决方案1】:

    我遇到了类似的问题。问题在于 configure.in 文件中 as,ld 的正则表达式。

    知道我的 2.20 肯定是 >2.15(根据 INSTALL 文件),我从

    更新正则表达式
    [2.1[3-9]*]
    

    我将版本检查注释为 as,ld。从技术上讲,我应该修复那个正则表达式,但不幸的是这样的东西不起作用

    [2.20*]
    

    因为我不想浪费太多时间,所以现在只是评论它并从配置文件中删除检查。稍后将使用适当的正则表达式更新帖子。

    【讨论】:

      【解决方案2】:

      当我使用 Debian(稳定分支)时,我的系统上多次遇到这个问题,已知它有过时的软件包。据我所知,唯一的办法就是升级glibc,也就是升级整个系统。如果你有很多时间,你可以升级 JUST glibc,但这通常比它的价值更麻烦,因为新版本可能有更新的符号,旧的符号可能已经重新定位。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2014-12-28
        • 2018-01-02
        • 2017-02-11
        • 2017-02-12
        • 1970-01-01
        • 2012-01-23
        • 2012-08-11
        • 2017-05-26
        • 1970-01-01
        相关资源
        最近更新 更多