说明你的系统启用了 Software Collections (SCL) 仓库(centos-sclo-rh 和/或 centos-sclo-sclo),但当前配置的 YUM 源(比如阿里云)没有为这些仓库提供镜像地址,或者你本地的 .repo 文件中这些仓库仍指向官方已下线的地址(CentOS 官方已于 2024 年 6 月 30 日终止对 CentOS 7 的支持,包括 SCL 仓库)。
✅ 解决方案
✅ 方法一:禁用 SCL 仓库(推荐,除非你明确需要使用 SCL 软件)
如果你不需要使用 Software Collections(例如 devtoolset、rh-python36 等),最简单的方式是直接禁用这些仓库:
sudo yum-config-manager --disable centos-sclo-rh
sudo yum-config-manager --disable centos-sclo-sclo
如果提示
yum-config-manager: command not found,先安装:sudo yum install -y yum-utils
之后再运行 yum makecache 或 yum update 就不会报错了。
✅ 方法二:为 SCL 仓库手动配置国内镜像源(如果你确实需要 SCL)
阿里云等镜像站仍然保留了 CentOS 7 的 SCL 仓库归档,可以手动修复 repo 文件。
-
备份原文件
sudo cp /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.bak sudo cp /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo.bak -
替换为阿里云的 SCL 源
编辑
/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo,将所有baseurl替换为阿里云地址,并注释掉mirrorlist:
ini[centos-sclo-rh] name=CentOS-7 - SCLo rh baseurl=https://mirrors.aliyun.com/centos/7/sclo/$basearch/rh/ gpgcheck=1 enabled=1 gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo同样,编辑
/etc/yum.repos.d/CentOS-SCLo-scl.repo:[centos-sclo-sclo] name=CentOS-7 - SCLo sclo baseurl=https://mirrors.aliyun.com/centos/7/sclo/$basearch/sclo/ gpgcheck=1 enabled=1 gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-SIG-SCLo -
清理缓存并重建
sudo yum clean all sudo yum makecache
⚠️ 注意:虽然阿里云目前仍保留这些目录,但 CentOS 7 已 EOL,不再有安全更新。建议尽快迁移至受支持的系统(如 Rocky Linux 7/8、AlmaLinux 或 CentOS Stream)。
🔍 如何判断是否真的需要 SCL?
运行以下命令查看是否安装了 SCL 相关包:
rpm -qa | grep -E 'scl|devtoolset|rh-python'
如果没有输出,说明你根本没用过 SCL,直接按 方法一禁用 即可,安全又省事。
总结
| 情况 | 推荐操作 |
|---|---|
| 不使用 SCL(大多数用户) | yum-config-manager --disable centos-sclo-rh centos-sclo-sclo |
| 明确需要 SCL(如用 devtoolset 编译) | 手动配置阿里云 SCL 源(方法二) |
5万+

被折叠的 条评论
为什么被折叠?



