Glibc 2.7 配置错误程序太旧

Glibc 2.7 configure error programs too old

本文关键字:程序 错误 配置 Glibc      更新时间:2023-10-16

当我在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,源代码是从这个网站下载的。

我将 soure 配置为非根:

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

屏幕上出现配置错误:

正在检查构建系统类型...x86_64-unknown-linux-gnu
正在检查主机系统类型...x86_64-unknown-linux-gnu
配置:运行附加组件 NPTL
的配置片段 正在检查系统处理器目录...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/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 是否正常工作...是的
检查海湾合作委员会...海湾合作委员会
正在检查目标文件的后缀...o
检查我们是否正在使用 GNU C 编译器...是的
检查 GCC 是否接受 -g...是的
检查 gcc 选项以接受 ISO C89...不需要
正在检查如何运行 C 预处理器...海湾合作委员会 -E
正在检查 G++...G++
检查我们是否正在使用 GNU C++编译器...是的
检查 G++ 是否接受 -g...是的
正在检查兰利布...兰利布
检查/usr/libexec/binutils220/as 是否是 GNU 作为...是的
检查 ld 是否是 GNU ld...是的
check for/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,好的
检查 pwd.../bin/pwd
检查海湾合作委员会...海湾合作委员会
检查 GCC 的版本...4.4.6, 好的
正在检查 gnumake...不
正在检查 gmake...gmake检查版本的gmake...3.81,正常
正在检查 gnumsgfmt...不
检查 GMSGFMT...不
正在检查消息...味精
正在检查消息的生成...0.14.6,还行
正在检查信息...不
正在检查 sed...塞德
正在检查 SED 的版本...4.1.5,好的
正在检查自动确认...自动会议
检查自动配置是否有效...是的
配置:错误:
这些关键程序丢失或太旧:如
检查安装文件中的所需版本。

以下是在 INSTALL 文件(以及我的系统中的版本(中进行编译的推荐工具:

1 GNU 使 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
矿山:

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

7 GNU sed 3.02 或更高版本
矿山:

GNU sed 版本 4.1.5

8 GNU autoconf 2.53 或更高版本
矿山:

autoconf (GNU Autoconf( 2.59

9 GNU 获取文本 0.10.36 或更高版本矿山:

gettext (GNU gettext-runtime( 0.14.6

我在 :

CentOS 版本 5.4 (最终版(
Linux iodell-01 2.6.18-164.6.1.el5

我是否必须安装较新版本的glibc,恐怕系统的软件包对于较新的软件包来说太旧了。我怎么能弄清楚?谢谢<</p>

div class="answers">

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

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

[2.1[3-9]*]

从技术上讲,我应该修复该正则表达式,但不幸的是,这样的事情不起作用

[2.20*]

由于我不想浪费太多时间,因此暂时对其进行了注释并从配置文件中删除了检查。稍后将使用适当的正则表达式更新帖子。

当我

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

我做了上述操作,没有解决问题,然后做了以下操作,现在工作:

  1. 编辑 ./configure 脚本本身(如果您愿意,可以编辑 ./configure.in - 或者 - 以及上面提到的 configure.in(,找到以下 CASE 行(在我的 GLIBC2.7 上,这些行位于 4530 和 4596(:

案例 $ac_prog_version in

case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  2.1[3-9]*)
      ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;

将以下内容添加到其中以允许你的版本:

2.2[0-9]*)
   ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;

同时进行AS和LD检查(上面提到的行号(,我做到了,我的也工作了。

祝你好运,希望这有帮助

H