CentOS 7 yum install devtoolset-11-gcc* 报错:Could not retrieve mirrorlist http://mirrorlist.centos.org?


这个错误是因为 CentOS 7 的 SCLo 软件仓库已于 2024年6月30日停止维护,官方镜像站已无法访问。你需要切换到第三方镜像来安装 devtoolset-11。

🛠️ 解决方案:使用阿里云镜像

步骤 1:备份并禁用原 SCLo 仓库

# 进入yum仓库目录
cd /etc/yum.repos.d/

# 备份原SCLo仓库文件
mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak
mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak

步骤 2:配置阿里云 SCLo 仓库

创建新的仓库配置文件:

# 创建新的SCLo仓库配置
vi /etc/yum.repos.d/CentOS-SCLo-scl-rh-aliyun.repo

将以下内容复制到文件中:

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

[centos-sclo-scl]
name=CentOS-7 - SCLo scl
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

保存并退出。

步骤 3:清理缓存并安装 devtoolset-11

# 清理yum缓存
yum clean all
yum makecache

# 安装devtoolset-11
yum install devtoolset-11-gcc*

步骤 4:启用新版本 GCC

# 临时启用(仅当前会话有效)
scl enable devtoolset-11 bash

# 永久启用(添加到bash配置)
echo "source /opt/rh/devtoolset-11/enable" >> ~/.bashrc
source ~/.bashrc

🔄 备选方案:如果阿里云镜像也不行

如果阿里云镜像也有问题,可以尝试完全禁用 GPG 检查(不推荐,仅作为临时方案):

# 临时禁用GPG检查
yum install devtoolset-11-gcc* --nogpgcheck

📦 其他获取 GCC 的方法

如果上述方法都不行,还可以考虑:

方案 1:从源码编译 GCC

# 安装编译依赖
yum install -y wget gcc-c++ make

# 下载并编译GCC 11
wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
tar xf gcc-11.4.0.tar.gz
cd gcc-11.4.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --prefix=/usr/local/gcc-11 --enable-languages=c,c++ --disable-multilib
make -j$(nproc)
make install

方案 2:使用预编译的 GCC 二进制包

# 从第三方仓库安装
yum install -y epel-release
yum install -y gcc-toolset-11-gcc*

✅ 验证安装

安装完成后验证 GCC 版本:

gcc --version
which gcc

💡 长期建议

考虑到 CentOS 7 已停止维护,建议:

  1. 升级到 CentOS Stream 8/9Rocky Linux/AlmaLinux
  2. 或者考虑使用 Docker 容器来隔离开发环境
posted @ 2025-10-24 17:48  guanyubo  阅读(16)  评论(0)    收藏  举报