CentOS 7源码编译安装glibc 2.28和GCC 8.2

在CentOS 7上安装较新版本的glibc 2.28和GCC 8.2可能会涉及一些复杂步骤,特别是对于非专业读者。本文将通过简明扼要、清晰易懂的方式,引导您完成安装过程,并提供可操作的建议和解决问题的方法。

一、安装glibc 2.28

首先,您需要了解当前系统的glibc版本。您可以通过以下命令来查看:

strings /lib64/libc.so.6 | grep GLIBC

如果您确定需要升级glibc,那么请按照以下步骤进行:

下载和安装依赖
在升级glibc之前,您需要下载并安装一些必要的依赖。您可以使用wget命令从GNU官方网站下载这些依赖:

wget https://ftp.gnu.org/gnu/binutils/binutils-2.32.tar.gz
wget https://ftp.gnu.org/gnu/bison/bison-3.2.1.tar.gz
wget http://ftp.gnu.org/pub/gnu/make/make-4.2.tar.gz

1.编译和安装glibc
接下来,您需要解压下载的文件,并编译安装glibc。这可能需要花费一些时间,具体取决于您的机器性能。

tar -xvf binutils-2.32.tar.gz
cd binutils-2.32
mkdir build
cd build
../configure --prefix=/usr
make
sudo make install

tar -xvf bison-3.2.1.tar.gz
cd bison-3.2.1
mkdir build
cd build
../configure --prefix=/usr
make
sudo make install

tar -xzvf make-4.2.tar.gz
cd make-4.2
mkdir build&&cd build
../configure --prefix=/usr
bash build.sh
sudo make install

升级compiler

查看c编译器版本

gcc  --version

升级c编译器

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
查看是否升级成功
gcc  --version

这将启动一个新的 shell 会话,其中 gcc 和 g++ 会指向 devtoolset-7 中的版本。这个切换只在当前 shell 会话中有效。

使用默认版本的 gcc:
启用 devtoolset-7 后,你可以在该会话中编译你的 glibc-2.28。编译完成后,退出该 shell 会话,你会自动恢复到系统默认的 gcc 版本(即 gcc 5.3.0)。

exit

退出 scl 环境后,你会发现系统的 gcc 版本回到默认版本。

编译glibc-2.28

wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar -xvf glibc-2.28.tar.gz
cd glibc-2.28
mkdir build
cd build
../configure CC="gcc" --prefix=/usr/local/glibc-2.28 --with-headers=/usr/include --disable-werror

make
sudo make install

二、安装GCC 8.2

GCC 8.2的编译安装过程与glibc类似,也需要一些耐心和时间。请按照以下步骤进行:

下载GCC 8.2源码
首先,您需要从GCC官方网站下载GCC 8.2的源码。由于CentOS 7默认的GCC版本可能较低,因此我们选择安装较新的GCC 8.2版本。

wget https://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz

解压和编译GCC
下载完成后,您可以解压GCC源码,并开始编译过程。

tar -xvf gcc-8.2.0.tar.xz
cd gcc-8.2.0
./contrib/download_prerequisites
mkdir build
cd build
../configure --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --disable-multilib
make -j$(nproc)
sudo make install

注意,make -j$(nproc)命令会利用您的所有CPU核心来加速编译过程。

三、总结

通过以上步骤,您应该成功地在CentOS 7上安装了glibc 2.28和GCC 8.2。这些更新将为您的系统提供更高的兼容性和性能。请注意,在升级系统库和编译器时,一定要谨慎操作,确保您了解每个步骤的含义和潜在风险。如果您在执行过程中遇到任何问题,可以参考官方文档或寻求社区的帮助。

祝您的升级过程顺利!

点赞