一、引言

在Liunx零碎CentOS7.9的中部署我的项目遇到了Glibc版本过低的问题,应用yum装置最高只能装置Glibc2.17并不能满足要求,本文介绍了如何用源码编译的办法降级Glibc的版本。

二、筹备工作

1、配置yum阿里镜像源

  • 查看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

2、装置Python3

yum install python3

3、降级gcc

# 下载软件包wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz# 解压依赖包tar -zxf gcc-9.3.0.tar.gzcd gcc-9.3.0/# 下载4个依赖包./contrib/download_prerequisites# 预编译mkdir buildcd 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.5ln -s /usr/local/gcc/bin/gcc /usr/bin/gccmv /usr/bin/g++ /usr/bin/g++_4.8.5ln -s /usr/local/gcc/bin/g++ /usr/bin/g++# 查看gcc版本gcc -v

4、降级make

# 下载软件包wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz# 解压tar -zxf make-4.3.tar.gzcd make-4.3/# 预编译mkdir buildcd build./configure --prefix=/usr# -j4中的数字为cpu核数,及并发工作工作数量,能够进步编译效率make -j4# 编译装置make install# 查看版本make -v

5、装置biso

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 buildcd build../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror# 编译make -j4# 备份lib64cp /usr/lib64 /usr/lib64.back# 装置make install# 查看版本ldd --version

四、装置locale(可选)

make localedata/install-locales