要安装一个Trace软件,但是需要Glibc2.25以上,Centos7默认的是2.17,所以需要升级版本,在这记录一下。
# 下载并解压 glibc-2.28
$ wget https://ftp.gnu.org/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
# 这一步时, 发生了错误, 提示大致为 These critical programs are missing or too old: make compiler
这个错误提示我们要升级GCC和MAKE版本。
首先安装RedHat的软件集合(SCLs)
yum install centos-release-scl -y
如果安装了GCC4.8就先卸载掉吧,防止冲突(会同步移除g++):
yum remove gcc -y
# 直接安装 GCC-8
$ yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
# 设置环境变量
$ echo "source /opt/rh/devtoolset-8/enable" >> /etc/profile
$ source /etc/profile
升级MAKE
$ wget https://ftp.gnu.org/gnu/make/make-4.3.tar.gz
$ tar -xzvf make-4.3.tar.gz
$ cd make-4.3/
# 安装到指定目录
$ ./configure --prefix=/usr/local/make
$ make
$ make install
# 创建软链接
$ cd /usr/bin/
$ mv make make.bak # backup
$ ln -sv /usr/local/make/bin/make /usr/bin/make
开始编译Glibc
# 进入之前的 `~/glibc-2.28/build`目录下
$ cd /root/glibc-2.28/build
$ yum install bison -y
$ ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
$ make
$ make install
# 验证是否安装成功
$ strings /lib64/libc.so.6 | grep GLIBC
...
GLIBC_2.22
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_PRIVATE
...
如果出现以上字样则表示升级成功。
参照:
https://cloud.tencent.com/developer/article/2021784
CentOS7快速安装GCC8