Glibc 2.7配置错误程序太旧了

问题描述 投票:4回答:2

当我在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 configure:为附加组件nptl运行configure fragment 检查sysdep dirs ... 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 /通用检查兼容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 ...是的 检查ld是否为GNU ld ...是的 检查/ usr / libexec / binutils220 / as ... / usr / libexec / binutils220 / as 检查/ usr / libexec / binutils220 /的版本为...... 2.20.51.0.2,不好 检查ld ... ld 检查ld的版本... 2.17.50.0.6,好的 检查pwd ... / 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是否有效...是的 配置:错误: 这些关键程序缺失或太旧:如 检查INSTALL文件中是否有所需版本。

以下是在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 雷:

这是为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 iodell-01 2.6.18-164.6.1.el5

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

c++ linux gcc glibc
2个回答
1
投票

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

知道我有2.20当然> 2.15(按照INSTALL文件),我更新了正则表达式

[2.1[3-9]*]

我评论了版本检查as,ld。从技术上讲,我应该修复正则表达式但不幸的是这样的事情没有用

[2.20*]

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.