centos7 glibc2.17升级到glibc2.28

项目开放过程中,要使用第三方公司的库,他们是在ubuntu18.04上编译的,使用的是glibc2.28版本。

目前本公司的环境是centos7,glibc是2.17版本。因此,要使用第三方的库,就得升级本公司的glibc。

进行glibc的编译前,需要一些准备工作。

解压glibc 后,阅读INSTALL文件,查看需要升级或者安装一些依赖软件。

本机上,gcc 和make 需要手动安装。

其他的yum 安装,就符合版本要求了,yum install texinfo python3 bison libselinux-devel audit-devel gd-devel

gcc需要安装4.9以上的版本,make需要安装4.0以上的版本。

gcc的安装

centos7默认的gcc版本是4.8.5,需要安装大于4.9以上的版本。

gcc4.8已完全支持c++11

gcc6.1已完全支持c++14

gcc7以上的版本完全支持c++17

因为涉及用到一些c++17的特性,故下载gcc7.5.0版本。

tar -xvf gcc-7.5.0.tar.gz

cd gcc-7.5.0

./contrib/download_prerequisites 下载几个依赖包。

不能下载的,可以用wget下载tar包放在gcc-7.5.0下面。

wget https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.5.0.tar.gz
wget https://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2
wget https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
wget http://isl.gforge.inria.fr/isl-0.18.tar.bz2

再执行下./contrib/download_prerequisites

./configure --prefix=/opt/gcc_build/ --enable-checking=release --enable-languages=c,c++ --disable-multilib

make -j10</

### 升级 GLIBC 版本至 2.28 的方法 在 CentOS 7.9 中,默认的 glibc 版本较低,通常为 2.17。为了满足某些应用程序的需求,可能需要将 glibc 升级到更高版本,如 2.28。然而,直接覆盖系统自带的 glibc 可能会破坏系统的稳定性,因此建议采用并行安装的方式。 #### 并行安装高版本 GLIBC 通过编译源码来实现 glibc 的并行安装是一个较为安全的选择: 1. **准备环境** 确保已安装必要的开发工具和依赖项: ```bash sudo yum groupinstall "Development Tools" sudo yum install wget make gcc-c++ patch libtool autoconf automake bison ``` 2. **下载并解压 glibc 源码包** ```bash cd /usr/local/src/ wget http://ftp.gnu.org/gnu/libc/glibc-2.28.tar.gz tar -xf glibc-2.28.tar.gz cd glibc-2.28 mkdir build && cd build ``` 3. **配置编译选项** 指定安装路径以避免影响现有系统文件: ```bash ../configure --prefix=/opt/glibc-2.28 make -j$(nproc) sudo make install ``` 4. **验证新版本是否成功安装** 创建软链接指向新的动态链接器,并测试其功能: ```bash export LD_LIBRARY_PATH=/opt/glibc-2.28/lib:$LD_LIBRARY_PATH /opt/glibc-2.28/bin/ldd --version ``` 以上命令应显示 glibc 2.28 的版本信息[^1]。 #### 注意事项 - 不推荐直接替换系统默认的 glibc 文件,因为这可能导致系统崩溃或其他不可预见的问题。 - 对于特定的应用程序,在启动时可以通过设置 `LD_LIBRARY_PATH` 或者编写 wrapper 脚本来加载自定义版本的 glibc。 - 如果计划长期运行该应用,则考虑构建容器化解决方案或将整个服务迁移到支持更新版 glibc 的操作系统环境中去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值