centos7.4 GLIBC_2.17 升级问题记录

本文详细介绍了如何从旧版本升级到glibc 2.18的过程,包括下载源码包、配置编译参数、进行编译安装及软连接设置等步骤,确保系统能顺利使用新版库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 ldd --version

strings /lib64/libc.so.6 |grep GLIBC

cd /usr/local

 wget https://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
 

tar -zxvf glibc-2.18.tar.gz

 

 cd glibc-2.18/

 

 mkdir build

 export LD_LIBRARY_PATH=/public/software/mpi/openmpi-16-intel/lib:/public/software/intel/composer_xe_2011_sp1.7.256/compiler/lib/intel64:/public/software/intel/composer_xe_2011_sp1.7.256/mkl/lib/intel64:/opt/gridview/pbs/dispatcher427/lib:/usr/local/lib64:/usr/local/lib

 

 cd build

 ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

 

make&make install

检查软连接

编译成功后,glibc-2.18-build文件下会生成一个新的libc.so.6,这是一个软连接,而真实的lib文件是此目录下的libc.so。ll是ls -l的别名

ll libc.so.6

查看库文件

ll /lib64/libc*

可以看到2.17的旧库文件还在,多了2.18版本的库文件,而且软链接文件全部指向了2.15版本

查看glibc支持的版本

strings libc.so | grep GLIBC

到这一步如果出现ls目录不能使用,则/lib64/libc.so.6未更新。需要重建软连接,但是先解决命令不能使用问题。

命令恢复:

# LD_PRELOAD=/lib64/libc-2.17.so
设置软连接,先删除旧的:

# rm /lib64/libc.so.6
# ln -s /lib64/libc-2.17.so /lib64/libc.so.6
查看glib详情,执行:

# strings /lib64/libc.so.6 |grep GLIBC_


 
参考:https://blog.csdn.net/liuxiao723846/article/details/84959784

### 升级 glibc2.25 版本 在 CentOS 7升级 `glibc` 至 2.25 需要特别小心,因为这涉及到系统的底层库文件。直接通过包管理器更新可能不支持此操作,因此建议采用源码编译的方式。 #### 准备工作 为了防止影响现有系统环境,在 `/opt` 下创建一个新的目录用于存放新版本的 `glibc`[^3]: ```bash mkdir /opt/glibc-2.25 ``` #### 编译安装过程 下载并解压目标版本的 glibc 源代码包之后,进入解压缩后的文件夹执行配置命令: ```bash cd glibc-2.25/ mkdir build && cd build ../configure --prefix=/opt/glibc-2.25 CFLAGS="-O2" make -j$(nproc) sudo make install ``` 上述命令指定了自定义路径来保存新的 glibc 安装成果,并设置了优化选项以提高性能。 #### 设置环境变量 为了让应用程序能够找到刚刚安装的新版动态链接库,可以设置 `LD_LIBRARY_PATH` 环境变量指向该位置: ```bash export LD_LIBRARY_PATH="/opt/glibc-2.25/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ``` 验证当前使用的 `ldd` 是否来自新版 glibc : ```bash ldd --version ``` 如果一切正常,则说明已经成功切换到了指定版本的 glibc 库。 需要注意的是,这种做法仅适用于那些可以通过显式加载特定路径下的共享对象的应用程序;对于依赖于默认系统范围内的 glibc 的服务来说,这种方法不会改变其行为。此外,某些情况下还需要调整其他相关联的软件组件才能完全兼容新版本的 glibc[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ljtyxl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值