glibc版本信息及安装

在高版本的glibc上编译的不能到底版本的glibc机器上运行的


问题:我需要找出我的Linux系统上的GNU C库(glibc)的版本,我怎样才能检查Linux上的glibc版本呢?

GNU C库(glibc)是标准C库的GNU实现。glibc是GNU工具链的关键组件,用于和二进制工具和编译器一起使用,为目标架构生成用户空间应用程序。
当从源码进行构建时,一些Linux程序可能需要链接到某个特定版本的glibc。在这种情况下,你可能想要检查已安装的glibc信息以查看是否满足依赖关系。
这里介绍几种简单的方法,方便你检查Linux上的glibc版本。
下面给出了命令行下检查GNU C库的简单命令。


方法一
$ ldd --version


方法二
另一个方法是在命令行“输入”glibc 库的名称(如,libc.so.6),就像命令一样执行。
输出结果会显示更多关于glibc库的详细信息,包括glibc的版本以及使用的GNU编译器,也提供了glibc扩展的信息。glibc变量的位置取决于Linux版本和处理器架构。
在基于Debian的64位系统上:
$ /lib/x86_64-linux-gnu/libc.so.6
在基于Debian的32位系统上:
$ /lib/i386-linux-gnu/libc.so.6
在基于Red Hat的64位系统上:
$ /lib64/libc.so.6
在基于Red Hat的32位系统上:
$ /lib/libc.so.6


在输出信息中有对应的版本号信息:

server:/lib/libc.so.6
GNU C Library stable release version 2.5, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-46).
Compiled on a Linux 2.6.9 system on 2010-03-10.
Available extensions:
        The C stubs add-on version 2.1.2.
        crypt add-on version 2.1 by Michael Glad and others
        GNU Libidn by Simon Josefsson
        GNU libio by Per Bothner
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
        RT using linux kernel aio
Thread-local storage support included.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.


===========================================================================================
===========================================================================================
===========================================================================================


glibc的安装编译


有些软件可能要求系统的 Glibc 高于某个版本才可以正常运行。如果您的 Glibc 低于要求的版本,为了运行这些软件,您就不得不升级您的 Glibc 了 。您可以寻找已经编译好的 rpm 包或者使用源代码的方式升级 Glibc。

下载glibc
wget <http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz>

下载glibc-linuxthreads
wget <http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2>

 
解压
#tar -zxvf glibc-2.7.tar.gz
#cd glibc-2.7
#tar -zxvf ../glibc-linuxthreads-2.3.6.tar.gz
#cd ..
#export CFLAGS="-g -O2 -march=i486"
#./glibc-2.7/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks

#make
#make install


安装编译过程中需要注意三点:
1、要将glibc-linuxthreads解压到glibc目录下。
2、不能在glibc当前目录下运行configure。
3、加上优化开关,export CFLAGS="-g -O2 -march=i486",否则会出现错误
'#error "glibc cannot be compiled without optimization"'


网上有些地方加优化开关 -O2 时(大写字母O),写的是 -02 (数字零),所以拷贝过来仍然出现3中的错误,所以请注意。

安装完后,可以查看ls -l /lib/libc.so.6已升级

lrwxrwxrwx 1 root root 11 Nov 12 09:24 /lib/libc.so.6 -> libc-2.7.so

猜你喜欢

转载自haiouc.iteye.com/blog/2406030