centos7升级glibc2.28

1 概述

centos7自带的glibc对于某些软件是太旧的,决定将glibc升级至2.28。


2 安装过程

2.1 下载glibc源码

mkdir -p /opt/third-party && cd /opt/third-party
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar -xf glibc-2.28.tar.gz
cd glibc-2.28

2.2 查看glibc的INSTALL文件所描述的依赖

该文件描述了依赖软件的版本要求,例如gcc和make的版本。

vim INSTALL

centos7升级glibc2.28_第1张图片


2.3 升级gcc工具链

依据INSTALL文件,4.9 <= gcc <= 8.1.1。本文使用gcc 7.3.1,make 4.2.1。
centos7升级glibc2.28_第2张图片
安装gcc7工具链可参考文章:

https://blog.csdn.net/nangonghen/article/details/132258014

2.4 修改test-installation.pl文件

如果不修改此文件,make install过程中会出现ldd:找不到nss_test2。

vim scripts/test-installation.pl

在文件的128行新增$name ne “nss_test2”,如下图所示:
centos7升级glibc2.28_第3张图片

2.5 正式编译安装

mkdir -p build
cd build

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

make -j 10
make localedata/install-locales -j 10
make install -j 10

说明:
如果执行configure命令是不带enable-obsolete-nsl参数,make install过程会有出现报错:undefined reference to '_nsl_default_nss@GLIBC_PRIVATE

2.6 安装结果

centos7升级glibc2.28_第4张图片
centos7升级glibc2.28_第5张图片

3 小结

编译过程有时不是一帆风顺,依据出现的错误不断地调整命令和文件,最终都能编译出你想要的软件。

你可能感兴趣的:(linux,linux,glibc)