?glibc是Linux系統中的重要組件之一。在CentOS中,glibc通常是作為系統的默認C標準庫使用的,因為它是許多軟件的基礎庫。在CentOS中,glibc的版本通常與CentOS版本一起發布。因為CentOS通常會優先選擇穩定性而不是最新性,所以CentOS使用的glibc版本通常不是很新。
?1.檢查linux版本
符合要求,當初安裝Linux時安裝了有圖形界面Gnome
2.檢查glibc的版本
版本2.17,需要升級到2.31
3.升級glibc到2.31
3.1下載安裝包
3.1解壓下載的安裝包glibc-2.31.tar.gz
3.2查看安裝glibc-2.31的條件并升級相關軟件
通過查看INSTALL文件我們可以知道安裝glibc2.31的要求,需要binutils版本2.25以上,texinfo版本4.7以上,bison版本2.7以上,sed版本3.02以上,gettext0.10.36以上,Python3.4以上,GDB7.8以上,make版本4.0以上,GCC版本6.2 以上。
3.2.1查看binutils
3.2.2查看textinfo
3.2.3查看bison
3.2.4查看sed
3.2.5查看gettext
3.2.6查看Python并安裝Python3.6
Python版本需要升級
查看一下Python版本
發現版本沒變,這是因為在/usr/bin中有個python軟鏈接文件仍然指向python2
刪除該文件,重新創建一個,指向python3就可以了
3.2.7查看gdb
3.2.8升級make
目前是3.82,需升級,但是升級時需要用到Linux中的編譯工具GCC,所以下面就需要下載安裝GCC9.3.0
3.2.8.1編譯安裝gcc并升級
3.2.8.1.1查看gcc是否安裝
gcc -v
3.2.8.1.2安裝gcc
yum groupinstall -y "Development Tools"
再次查看版本,低于要求
3.2.8.1.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.gz
cd gcc-9.3.0/
# 下載4個依賴包
./contrib/download_prerequisites
# 預編譯
mkdir build
cd build
../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr/local/gcc
#../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr
# 查看cpu核數
cat /proc/cpuinfo| grep “processor”| wc -l
# -j4中的數字為cpu核數,及并發工作任務數量,可以提高編譯效率,編譯時間比較久,我用了幾個小時。
make -j4
# 編譯安裝
make install
# 檢查gcc版本
gcc -v
解壓
進入解壓后的gcc-9.3.0文件夾查看contrib下的download_prerequisites文件,查看gcc所需要的四個依賴
當執行 ./contrib/download_prerequisites 長時間不成功時,按ctrl+C中斷
在執行download_prerequisites下載4個依賴包時,因為是從ftp://gcc.gnu.org/pub/gcc/infrastructure/下載,可能下載不下來,可以找替代的下載源,可以預先下載這四個文件
gmp-6.1.0版本:https://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
isl-0.18版本: http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure
mpc-1.0.3版本 :https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
mpfr-3.1.4版本:https://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.gz
拷貝到Linux機器中解壓
下載后解壓出來的文件夾放在gcc-9.3.0中,并在gcc-9.3.0中創建四個軟鏈接,
ln -s ./mpc-1.0.3 mpc
ln -s ./mpfr-3.1.4 mpfr
ln -s ./gmp-6.1.0 gmp
ln -s ./isl-0.18 isl
然后再執行后面的命令
3.2.8.2升級make到4.3
# 下載軟件包
wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz
# 解壓
tar -zxf make-4.3.tar.gz
cd make-4.3/
# 預編譯
mkdir build
cd build
./configure --prefix=/usr
# -j4中的數字為cpu核數,及并發工作任務數量,可以提高編譯效率
make -j4
# 編譯安裝
make install
# 查看版本
make -v
?
下載軟件包
并解壓
3.3編譯安裝glibc2.31
# 下載軟件包
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
# 解壓
tar -zxvf glibc-2.31.tar.gz
#進入解壓后的文件夾glibc-2.31
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 -j4
# 備份lib64
cp /usr/lib64 /usr/lib64.back
# 安裝
make install
# 查看版本
ldd --version