在本地使用vscode远程开发时,连接到远程服务器,出现报错,谷歌了下才发现是centos7的glibc版本太低,网上我也没找到有用的升级教程,求教如何安全升级glibc的版本
在本地使用vscode远程开发时,连接到远程服务器,出现报错,谷歌了下才发现是centos7的glibc版本太低,网上我也没找到有用的升级教程,求教如何安全升级glibc的版本
glibc是Linux系统中的重要组件之一。在CentOS中,glibc通常是作为系统的默认C标准库使用的,因为它是许多软件的基础库。在CentOS中,glibc的版本通常与CentOS版本一起发布。因为CentOS通常会优先选择稳定性而不是最新性,所以CentOS使用的glibc版本通常不是很新。
glibc的版本较低有时会影响某些服务的使用,特别是一些需要使用较新的glibc版本的软件,可能无法在CentOS中正常运行。因此,在CentOS中使用这些软件时,可能需要手动升级glibc或使用其他 Linux发行版。
切记,一定要在测试环境测试通过之后,才能在生产环境操作,且操作前一定要做好系统快照及数据备份,否则一旦升级失败,影响是非常大的!
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
tar -zxvf glibc-2.31.tar.gz
cd glibc-2.31/
cat INSTALL | grep -E "newer|later"
输出:
* GNU 'make' 4.0 or newer
* GCC 6.2 or newer
building the GNU C Library, as newer compilers usually produce
* GNU 'binutils' 2.25 or later
* GNU 'texinfo' 4.7 or later
* GNU 'bison' 2.7 or later
* GNU 'sed' 3.02 or newer
* Python 3.4 or later
* GDB 7.8 or later with support for Python 2.7/3.4 or later
* GNU 'gettext' 0.10.36 or later
根据glibc安装要求,需要达到上述条件,才可进行glibc2.31版本编译安装。
我们系统里的make、gcc、python、gbd均不符合安装要求,需手动安装符合要求的版本。经测试,glibc升级到2.31版本,没有遇到gdb的报错问题,可能是因为直接升级了python至3.4以上。如果你当前编译的版本提示gdb报错问题,你可以升级gdb版本至7.8以上。当前环境没有出现此类问题,所以这里就没有升级gdb至7.8以上版本。
yum install -y texinfo
yum install -y mlocate
yum install -y bzip2
yum install -y bison
yum groupinstall -y "Development Tools"
如果系统环境未安装gcc环境,还需执行如下命令来安装:
yum install gcc gcc-c++ -y
wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
tar axf gcc-9.3.0.tar.gz
cd gcc-9.3.0
./contrib/download_prerequisites
cat /proc/cpuinfo| grep "processor"| wc -l
mkdir build
cd build
../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr
make -j6
make install
gcc -v # 查看gcc版本
wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz
tar axf make-4.3.tar.gz
cd make-4.3
mkdir build
cd build
../configure --prefix=/usr && make && make install
make -v # 查看版本
yum install -y python3
python3 --version
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
cd glibc-2.31/
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 -j6
make install
make localedata/install-locales
ldd --version
ll /lib64/libc.so.6
ldd --version
# 删除rpm数据文件
rm -f /var/lib/rpm/__db.00*
# 重建rpm数据文件
rpm --rebuilddb