在高版本的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
相关推荐
**GLIBC 2.28 版本详解** GLIBC,全称为GNU C Library,是Linux操作系统中的核心组件之一,为应用程序提供系统调用接口和C语言库支持。...同时,合理规划和管理GLIBC版本的升级,也是保障系统正常运行的关键。
安装过程通常使用`rpm`命令,如`rpm -ivh glibc-*.i386.rpm`,但需要注意的是,这可能会影响已经安装的其他版本的glibc,因此在实际操作前需谨慎评估系统需求。 总的来说,glibc 2.5版本对于32位Linux系统的正常...
2. **检查当前glibc版本**:在终端中输入`ldd --version`或`strings /lib64/libc.so.6 | grep GLIBC`,可以查看当前glibc的版本信息。 3. **下载glibc2.14**:在描述中提到的压缩包"**glibc2.14.zip**"包含了升级所...
4. **安装过程**:使用`rpm -Uvh glibc-2.17.rpm`命令进行安装,其中`-Uvh`参数分别表示升级、保留旧版配置文件、显示详细信息。 5. **解决依赖**:如果安装过程中遇到依赖问题,可以使用`yum install -y --skip-...
描述中的内容简洁,没有提供具体细节,但我们可以推断讨论的是这三个Glibc版本的相关信息。在实际使用中,不同的Linux发行版可能预装了不同版本的Glibc,因此对于旧软件或特定环境,可能需要特定版本的Glibc来确保...
安装完成后,再次使用上述命令检查glibc版本,确认已成功升级。 7. **重启系统**: 为了使所有系统服务都能使用新的glibc,建议重启系统。重启后,系统应该会使用新版本的glibc运行。 8. **测试和恢复**: 升级...
在执行这些操作前,确保了解可能的风险,因为不兼容的glibc版本可能导致系统不稳定或者与其他软件冲突。在某些情况下,可能需要创建一个单独的环境或者使用容器来隔离旧版Oracle数据库和系统其他部分,以避免可能的...
本文将详细介绍如何使用提供的glibc升级包RPM 2.22来提升系统的glibc版本至GLIBC_2.23,以及这个过程中的关键知识点。 首先,让我们了解一下glibc。glibc是GNU项目的一部分,由自由软件基金会维护,它不仅包含C标准...
这是因为 MySQL 5.6 及更高版本在内存低于 1GB 的情况下可能无法正常启动。可以使用 `free -m` 命令查看当前系统可用内存情况。 #### 二、安装准备 1. **下载 MySQL 安装包**:根据你的 CentOS 系统架构,下载对应...
在描述中提到的情况,用户试图在RHEL 5.5上安装WPS办公软件,但因为系统自带的Glibc版本过低,无法满足WPS的运行需求,因此需要升级Glibc。 Glibc的升级过程需谨慎处理,因为它涉及到系统的核心组件,不正确的操作...
`strings`工具用于提取二进制文件中的可打印字符串,`grep GLIBC`则是过滤出包含"GLIBC"的信息,这样我们可以得知当前系统正在使用的glibc版本。如果发现版本过低,就需要进行升级。 接下来,我们将详细讲解升级...
- `-v`:表示详细模式,显示安装过程的详细信息。 - `-h`:表示打印哈希标记,便于追踪安装进度。 升级步骤如下: 1. 下载glibc2.14的相关rpm包,包括glibc-common、glibc、glibc-static、glibc-devel、glibc-...
当系统运行依赖于特定GLIBC版本的应用程序时,若该版本未安装,则会导致程序无法正常启动。 #### 二、检测GLIBC版本 文档提到使用命令行工具检查当前系统的GLIBC版本,具体命令为: ``` strings /usr/lib64/libc....
1. **识别受影响版本**:首先,你需要确定你的系统上安装的glibc版本是否受到已知漏洞的影响。这可以通过查看glibc的版本号和查阅安全公告来完成。 2. **获取更新包**:针对受影响的版本,官方会发布补丁或更新包,...
然而,如果你想安装特定版本的glibc,例如glibc2.16或glibc2.17,可以使用提供的源码包(如glibc-2.17.tar.gz和glibc-2.16.0.tar.xz)进行编译安装: 1. 解压源码包:`tar -zxvf glibc-2.17.tar.gz` 或 `xz -d ...
- **glibc版本**:要求为2.3及以上。 - **虚拟机软件**:推荐使用VMware Workstation 10.0.1。 #### 安装准备 1. **虚拟机与操作系统**: - 需要安装好的VMware Workstation虚拟机软件。 - 准备好CentOS-6.4-x86_...
4. **安装glibc**:glibc是系统的核心组件,可能已经预装在系统中,但为了确保版本正确,可以使用`rpm -Uvh glibc*.rpm`命令进行更新或安装。 5. **安装gcc**:GCC是编译其他软件包所必需的,使用`rpm -Uvh gcc*....
2. **glibc-common-2.7-2.i386.rpm**:此包通常包含了共用的配置文件和数据,比如locale信息、动态链接器的支持文件等。这些文件对于所有依赖Glibc的程序都是共享的,无论这些程序是否运行在32位环境下。安装这个包...
2. 使用`rpm -Uvh glibc-2.17.rpm`命令进行升级,`-U`表示升级已有版本,`-v`显示详细信息,`-h`则会在安装过程中显示进度条。 3. 安装完成后,验证glibc的版本,可使用`ldd --version`或`strings /lib64/libc.so.6 ...
1. **版本升级**:glibc定期发布新版本,修复已知问题,增加新功能,开发者需要关注版本更新以保持代码的兼容性和安全性。 2. **向后兼容**:glibc一般保持向后兼容,但重大更新可能影响旧程序,因此升级前需做充分...