centos 升级gcc 环境

yum -y install centos-release-scl
yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
scl enable devtoolset-8 bash
echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile
yum install -y bison

升级make

wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz
tar -xzvf make-4.2.tar.gz
cd make-4.2
sudo ./configure
sudo make
sudo make install
sudo rm -rf /usr/bin/make
sudo cp ./make /usr/bin/
make -v

升级glibc

cd /wanghao/glibc
wget https://mirror.bjtu.edu.cn/gnu/libc/glibc-2.28.tar.xz --no-check-certificate
tar -xf glibc-2.28.tar.xz
cd glibc-2.28/
mkdir build
cd build
sudo ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make  -j 8   #make 运行时间较长 开启多线程任务编译 开启数量 8
make install

查看环境中所有GLIBC

ls -la /lib64/libc.so.6
strings /lib64/libc.so.6 |grep GLIBC

问题解决

升级libc后导致中文乱码

如果编译目录没有删除 ,则进入glibc的编译目录,也就是build目录

make localedata/install-locales

再次执行 locale 这时应该已经正常了
但是如果你已经删除了编译glibc的build目录或者不知道build的目录在哪里
查看 locale-archive 归档文件目录

strings /lib64/libc-2.28.so | grep locale-archive

查看目标 结果中有没有 locale-archive

没有就将/usr/lib/locale/locale-archive 软连接到目标位置

ln -s /usr/lib/locale/locale-archive  目标