在 CentOS 上切换 gcc 版本,常见有三种方式,从推荐程度由高到低说明。
scl(Software Collections)【推荐】这是 CentOS 7/8 官方推荐方式,适合需要多个 gcc 并存、不破坏系统环境。
yum install -y centos-release-scl
yum list available devtoolset-*-gcc
常见版本:
devtoolset-7-gccdevtoolset-8-gccdevtoolset-9-gccdevtoolset-10-gccdevtoolset-11-gccyum install -y devtoolset-9
scl enable devtoolset-9 bash
验证:
gcc --version
echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc
source ~/.bashrc
✅ 优点
alternatives(适合单系统 gcc 替换)⚠️ 不推荐新手使用,容易破坏系统环境。
yum install gcc gcc-9
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 80
alternatives --config gcc
选择对应编号即可。
验证:
gcc --version
适合 需要最新 gcc(如 gcc 13/14) 的情况。
wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz
tar -xf gcc-13.2.0.tar.xz
cd gcc-13.2.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --prefix=/usr/local/gcc-13 --enable-languages=c,c++
make -j$(nproc)
make install
export PATH=/usr/local/gcc-13/bin:$PATH
或写入 .bashrc
| 场景 | 推荐方式 |
|---|---|
| CentOS 7/8 多版本切换 | ✅ scl |
| 简单替换系统 gcc | alternatives |
| 最新 gcc / 自定义 | 手动编译 |
scl 切换只对当前 shell 生效如果你愿意,可以告诉我:
我可以给你精确命令。