CentOS7.9中的Glibc2.17源码编译升级到Glibc2.31
阅读原文时间:2023年08月18日阅读:1

一、准备工作

  • 查看yum当前配置的仓库,如果yum配置的不是阿里云源,请配置阿里云源。

    yum repolist all
  • 验证是否能ping通阿里云

    # 如果不能ping通可能是DNS没有配置
    ping  mirrors.aliyun.com
  • 备份官方的原yum源配置

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
  • 下载Centos-7.repo文件

    # 如果没有wget命令,使用yum install wget进行安装
    wget -o /etc/yum.repos.d/CentOS-Base.repo http://mirros.aliyun.com/repo/Centos-7.repo
  • 清除及生成缓存

    # 清除yum缓存
    yum clean all
    # 缓存阿里云源
    yum makecache
    # 测试阿里云源
    yum list
    # 更新yum源
    yum update

    yum install python3

    下载软件包

    wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz

    解压依赖包

    tar -zxf gcc-9.3.0.tar.gz
    cd gcc-9.3.0/

    下载4个依赖包

    ./contrib/download_prerequisites

    预编译

    mkdir build
    cd build
    ../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr/local/gcc

    查看cpu核数

    cat /proc/cpuinfo| grep “processor”| wc -l

    -j4中的数字为cpu核数,及并发工作任务数量,可以提高编译效率,编译时间比较久。

    make -j4

    编译安装

    make install

    配置软链接

    mv /usr/bin/gcc /usr/bin/gcc_4.8.5
    ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
    mv /usr/bin/g++ /usr/bin/g++_4.8.5
    ln -s /usr/local/gcc/bin/g++ /usr/bin/g++

    检查gcc版本

    gcc -v

# 下载软件包
wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz
# 解压
tar -zxf make-4.3.tar.gz
cd make-4.3/
# 预编译
mkdir build
cd build
./configure --prefix=/usr
# -j4中的数字为cpu核数,及并发工作任务数量,可以提高编译效率
make -j4
# 编译安装
make install
# 查看版本
make -v


yum install biso

二、源码编译安装

注意:如果make编译完有错误,一定不要执行make install安装操作,有可能会把系统搞崩命令失效的情况。出现错误的原因就是/usr/lib64​中的软连接出现了不匹配的情况。恢复之前的软连接即可恢复系统。出现问题后,千万不要断开SSH的连接,断开就连不上了会非常麻烦。

# 下载软件包
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
# 解压
tar -zxvf glibc-2.31.tar.gz
# 预编译
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 -j4
# 备份lib64
cp /usr/lib64 /usr/lib64.back
# 安装
make install
# 查看版本
ldd --version

三、安装locale(可选)

make localedata/install-locales