libc.so.6: version `GLIBC_2.14' not found

本文介绍了解决CentOS 6.3 x86_64系统上因glibc版本过低导致的libc.so.6: version `GLIBC_2.14' not found错误的方法,并提供了检查glibc版本和支持情况的具体步骤。

【linux】提示"libc.so.6: version `GLIBC_2.14' not found",系统的glibc版本太低

0.以下在系统CentOS 6.3 x86_64上操作

1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:

2.查看系统glibc支持的版本:

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

3./lib/libc.so.6

4.查看编译器版本gcc --version

5. getconf GNU_LIBPTHREAD_VERSION

6.objdump -T /lib/libc.so.6 | grep GLIBC

7.objdump -t <exeute> | grep GLIBC


Linux 发行版所使用的线程模型、glibc 版本和内核版本

表 1 列出了一些流行的 Linux 发行版,以及它们所采用的线程实现的类型、glibc 库和内核版本。

表 1. Linux 发行版及其线程实现
线程实现C 库发行版内核
LinuxThreads 0.7, 0.71 (for libc5)libc 5.xRed Hat 4.2 
LinuxThreads 0.7, 0.71 (for glibc 2)glibc 2.0.xRed Hat 5.x 
LinuxThreads 0.8glibc 2.1.1Red Hat 6.0 
LinuxThreads 0.8glibc 2.1.2Red Hat 6.1 and 6.2 
LinuxThreads 0.9 Red Hat 7.22.4.7
LinuxThreads 0.9glibc 2.2.4Red Hat 2.1 AS2.4.9
LinuxThreads 0.10glibc 2.2.93Red Hat 8.02.4.18
NPTL 0.6glibc 2.3Red Hat 9.02.4.20
NPTL 0.61glibc 2.3.2Red Hat 3.0 EL2.4.21
NPTL 2.3.4glibc 2.3.4Red Hat 4.02.6.9
LinuxThreads 0.9glibc 2.2SUSE Linux Enterprise Server 7.12.4.18
LinuxThreads 0.9glibc 2.2.5SUSE Linux Enterprise Server 82.4.21
LinuxThreads 0.9glibc 2.2.5United Linux2.4.21
NPTL 2.3.5glibc 2.3.3SUSE Linux Enterprise Server 92.6.5

注意,从 2.6.x 版本的内核和 glibc 2.3.3 开始,NPTL 所采用的版本号命名约定发生了变化:这个库现在是根据所使用的 glibc 的版本进行编号的。

Java™ 虚拟机(JVM)的支持可能会稍有不同。IBM 的 JVM 可以支持表 1 中 glibc 版本高于 2.1 的大部分发行版。


### 解决思路和步骤 #### 检查系统 GLIBC 版本 使用以下命令查看系统当前的 GLIBC 版本: ```bash strings /lib64/libc.so.6 | grep GLIBC ``` 该命令会列出 `libc.so.6` 支持的所有 GLIBC 版本。如果列表中没有 `GLIBC_2.14`,则说明系统版本过低。 #### 升级 GLIBC 在麒麟系统上升级 GLIBC 需要谨慎操作,因为不正确的升级可能会导致系统不稳定。可以通过以下步骤尝试升级: 1. **更新系统软件源**: ```bash sudo apt update ``` 2. **升级系统**: ```bash sudo apt upgrade ``` 这将尝试将系统的所有软件包升级到最新版本,可能会包含 GLIBC 的升级。 #### 手动安装 GLIBC 如果系统软件源中没有合适的 GLIBC 版本,可以考虑手动安装。不过这是一个较为复杂且危险的操作,需要备份重要数据。 1. **下载 GLIBC 源码**:从 GLIBC 官方网站下载 `GLIBC_2.14` 版本的源码包。 2. **解压并编译**: ```bash tar -zxvf glibc-2.14.tar.gz cd glibc-2.14 mkdir build cd build ../configure --prefix=/usr make -j$(nproc) sudo make install ``` #### 配置 LD_LIBRARY_PATH 如果手动安装的 GLIBC 路径与系统默认路径不同,需要配置 `LD_LIBRARY_PATH` 环境变量,让系统能够找到新的 `libc.so.6`。 ```bash export LD_LIBRARY_PATH=/path/to/new/libc:$LD_LIBRARY_PATH ``` 可以将该命令添加到 `~/.bashrc` 或 `/etc/profile` 中,使其永久生效。 ### 避免未来发生类似问题的方法 - **环境一致性**:在开发和测试阶段,尽量使用与生产环境相同的操作系统版本和软件依赖,确保应用在不同环境中的兼容性。 - **依赖管理**:在打包 Java 应用时,明确列出所有的依赖库及其版本,避免使用过高版本的依赖导致兼容性问题。 - **定期更新系统**:及时更新操作系统和软件包,确保系统拥有最新的安全补丁和功能更新,减少因版本过旧导致的兼容性问题。 ### 资源 - **GLIBC 官方网站**:可以从这里下载最新的 GLIBC 源码和文档。 - **麒麟系统官方论坛**:在论坛上可以找到其他用户分享的类似问题的解决方案和经验。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值