GLIBC升级
零、 Environment
CentOS7.9 x86_64 kvm
GLIBC 2.17 升级至 2.28
一、 准备工作
1.1 升级 GCC 12.3
下载:
wget --no-check-certificate https://mirrors.nju.edu.cn/gnu/gcc/gcc-12.3.0/gcc-12.3.0.tar.gz
解压:
tar -xzvf gcc-12.3.0.tar.gz
安装依赖:
yum install bzip2 gcc gcc-c++
下载环境:
/gcc-12.3.0/contrib/download_prerequisites
编译安装:
cd gcc-12.3.0
mkdir build
cd build
../configure -enable-checking=release -enable-language=c,c++ -disable-multilib
make install
参数解释:
enable-languages #表示你要让你的gcc支持那些语言
disable-multilib #不生成编译为其他平台可执行代码的交叉编译器
disable-checking #生成的编译器在编译过程中不做额外检查
enable-checking=xxx #检查xx删除旧版 gcc:
yum remove gcc g++
链接新版 gcc (产出文件默认遵循FHS规范)
ln -s /usr/local/bin/gcc /usr/bin/gcc
验证新版 gcc
1.2 升级make
下载:
wget --no-check-certificate https://mirrors.nju.edu.cn/gnu/make/make-4.3.tar.gz
解压:
tar zxvf make-4.3.tar.gz
编译安装(产出文件默认遵循FHS规范)
cd make-4.3
./configure
make -j4
make install
移除原来的make
mv /usr/bin/make{,.back}
链接新版本的make
ln -s /usr/local/bin/make /usr/bin/make
验证新版make
1.3 升级 GLIBC 2.8
下载:
wget --no-check-certificate https://mirrors.nju.edu.cn/gnu/glibc/glibc-2.28.tar.gz
解压:
tar -xzvf glibc-2.28.tar.gz
编译安装
cd glibc-2.28
mkdir build && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror
make install
不要修改 --prefix=/usr
参数解释:
--prefix=/usr/local/GLIBC-2.8: |
二、 相关报错
2.1 安装glibc-2.28时报LD_LIBRARY_PATH
相关错误
错误详情:
l * LD_LIBRARY_PATH shouldn’t contain the current directory when |
解决:echo $LD_LIBRARY_PATH
将输出的结果临时注释, 编译安装完成之后再取消注释
2.2 更新glibc-2.28后执行yum报错Error accessing file for config file:///etc/yum.conf
错误详情:
解决: 重新安装yum
下载:
wget http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz
解压:
tar -zxvf yum-3.4.3.tar.gz
安装:
cd yum-3.4.3
touch /etc/yum.conf