本文最后更新于 411 天前,其中的信息可能已经有所发展或是发生改变。
最近更换了服务器,操作系统由CentOS 8 变更为了 CentOS 7.6。在迁移原服务器上的的AList 服务是出现了/lib64/libc.so.6: version `GLIBC_2.28' not found
错误,glibc 是 GUN C 函数库的关键组件,查看了一下CentOS 7.6 的Glibc版本是2.17,看来需要升级到2.28版本了。
首先在CentOS 上可以通过 ldd --version 命令查看当前的版本 (下图是我已经升级好了)
下载编译安装 Glibc,make的时候花费的时间比较长,需要耐心等待。
wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.xz
(如果上面的连接无法下载,可以用国内镜像源 https://mirror.bjtu.edu.cn/gnu/libc/glibc-2.28.tar.xz)
tar -xf glibc-2.28.tar.xz -C /usr/local
cd /usr/local/glibc-2.28/
mkdir build
cd build/
yum install -y bison
sudo ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install
如果出现These critical programs are missing or too old: make bison compiler
Check the INSTALL file for required versions 错误说明make 版本过低,需要升级 make版本,make 版本可以通过make -v 查看。
安装依赖,升级GCC
yum install bison -y
yum -y install wget bzip2 gcc gcc-c++ glibc-headers
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
升级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
最后可以还可以通过 strings /lib64/libc.so.6 | grep GLIBC命令查看 Glibc 的版本