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
2.3 升级gcc工具链
依据INSTALL文件,4.9 <= gcc <= 8.1.1。本文使用gcc 7.3.1,make 4.2.1。
安装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”,如下图所示:
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 安装结果
3 小结
编译过程有时不是一帆风顺,依据出现的错误不断地调整命令和文件,最终都能编译出你想要的软件。