CentOS “libc.so.6: version ‘GLIBC_2.14‘ not found“解决方法,同理‘GLIBC_2.15‘ not found“

本文详细指导如何在CentOS系统中因glibc版本过低导致'GLIBC_2.14'或'GLIBC_2.15'错误时,通过源码升级glibc,包括查看版本、下载源码、配置安装及验证步骤,同时提及误删libc.so.6的解决方法。

文章系转载,方便整理和归纳,源文地址 https://www.cnblogs.com/babosa/p/11124025.html

出现"libc.so.6: version ‘GLIBC_2.14’ not found"问题,是由于glibc版本过低,升级glibc即可。

由于CentOS系统RPM源目前glibc最高版本是2.12,所以只能采用源码升级

一、查看系统glibc支持的版本

strings /lib64/libc.so.6 |grep GLIBC
#查看当前glibc版本
ll /lib64/libc.so.6 
lrwxrwxrwx. 1 root root 12 Oct  9  2014 /lib64/libc.so.6 -> libc-2.12.so

二、下载glibc源码包

cd /usr/src/
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.14.tar.gz
wget https://mirrors.aliyun.com/gnu/glibc/glibc-ports-2.14.tar.gz      #glibc插件

三、解压安装升级glibc

tar zxvf glibc-2.14.tar.gz
tar zxvf glibc-ports-2.14.tar.gz
mv glibc-ports-2.14 glibc-2.14/ports
mkdir build
cd build
../glibc-2.14/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j4
make install

四、验证

查看当前系统glibc支持的版本

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

五、误删libc.so.6解决办法

命令行执行如下:

#LD_PRELOAD=/lib/libc-2.12.so ln -s /lib/libc-2.12.so lib/libc.so.6

六、同理’GLIBC_2.15’ not found"

将上述流程中的2.14全部改成2.15就解决了’GLIBC_2.15’ not found"报错的问题了。

### 问题分析 当程序运行时提示 `libc.so.6: version 'GLIBC_2.34' not found`,这表明程序在链接运行时依赖的 GNU C 库(glibc)版本为 2.34 或更高,而当前系统的 glibc 版本较低,无法满足该需求。glibc 是 Linux 系统的核心库之一,负责提供系统调用、标准 C 库函数等基础功能。 根据系统查看 glibc 版本的方法,例如使用 `strings /lib64/libc.so.6 | grep GLIBC_` 可以列出当前系统支持的 glibc 版本。如果输出中未包含 `GLIBC_2.34`,则说明系统 glibc 版本不足以支持该程序的运行。 ### 解决方案 1. **确认当前 glibc 版本** 使用以下命令查看系统当前 glibc 支持的版本: ```bash strings /lib64/libc.so.6 | grep GLIBC_ ``` 如果输出中未包含 `GLIBC_2.34`,则需升级 glibc2. **升级 glibc** glibc 的升级较为敏感,建议通过系统包管理器进行操作。对于基于 Red Hat 的系统(如 CentOS、RHEL),可使用 `yum` 或 `dnf`: ```bash sudo yum update glibc ``` 对于较新版本的 Fedora 或 CentOS Stream,可尝试: ```bash sudo dnf update glibc ``` 如果系统官方仓库未提供 glibc-2.34,可能需要升级整个操作系统或切换到支持该版本 glibc 的发行版,如较新的 Fedora、CentOS Stream 或 Ubuntu LTS 版本。 3. **从源码编译安装 glibc 2.34** 如果无法通过系统包管理器升级,则可以考虑从源码编译安装 glibc。此方法风险较高,需谨慎操作,并建议在测试环境中先行验证。 步骤如下: - 下载 glibc 2.34 源码包: ```bash wget https://ftp.gnu.org/gnu/glibc/glibc-2.34.tar.gz tar -xzf glibc-2.34.tar.gz cd glibc-2.34 ``` - 创建构建目录并配置: ```bash mkdir build cd build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin ``` - 编译并安装: ```bash make sudo make install ``` 安装完成后,重新运行程序以确认问题是否解决。 4. **使用容器或虚拟机运行程序** 如果无法直接升级系统 glibc,另一种方法是使用容器(如 Docker)或虚拟机运行程序。可以在容器中部署支持 glibc-2.34 的操作系统环境,从而避免对主机系统的修改。 5. **检查程序是否可降级依赖** 如果程序是由用户自行编译的,可以尝试在较低版本 glibc 的系统上重新编译程序,以确保其依赖的 glibc 版本与目标运行环境一致。 ### 注意事项 - **系统稳定性风险**:glibc 是系统核心库,升级过程中可能导致系统不稳定或部分服务无法正常运行,务必在升级前备份系统并评估风险。 - **兼容性验证**:升级 glibc 后,建议验证系统中其他依赖 glibc 的应用程序是否仍能正常运行。 - **容器方案优势**:若仅需运行特定程序,推荐使用容器化方案,以避免对主机系统造成影响。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值