Centos 停服 替换yum源
一、🔍 问题 :Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
1. 问题分析
通常出现在 CentOS 7 或 CentOS 8 系统上,当你尝试使用 yum 或 dnf 安装软件(尤其是来自 Software Collections (SCL) 的软件包,如 rh-python36, rh-nginx120 等)时。
2. 错误原因
CentOS 官方已于 2021 年底(CentOS 8)和 2024 年 6 月 30 日(CentOS 7)停止维护,所有官方 yum 源(包括 centos-sclo-rh)已下线或重定向。
centos-sclo-rh 是 CentOS SCL(Software Collections)仓库的一部分,用于提供新版开发工具(如 Python 3.6、Node.js、Nginx 等)。
停服后,原 URL(如 mirror.centos.org/centos/7/sclo/…)返回 404 或空内容,导致 yum 找不到 baseurl。
3. 解决方案
方案一:【推荐】迁移到 Vault 归档源(适用于临时修复或旧系统维护)
适用于仍需在 CentOS 7 上运行旧服务的场景(如生产环境未及时迁移)。
- 步骤(以 CentOS 7 为例):
- 备份原有 repo 文件
sudo mkdir -p /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/CentOS-SCLo-*.repo /etc/yum.repos.d/backup/
- 下载 Vault 版本的 SCL repo 文件
sudo curl -o /etc/yum.repos.d/CentOS-SCLo-rh.repo https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7
# 实际应使用 vault 地址,正确方式如下:
更准确的做法是手动创建 /etc/yum.repos.d/CentOS-SCLo-rh.repo:
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://vault.centos.org/7.9.2009/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://vault.centos.org/7.9.2009/sclo/$basearch/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
💡 注意:7.9.2009 是 CentOS 7 最终版本号,可替换为你的具体版本(通过 cat /etc/centos-release 查看)。
- 清理并重建缓存
sudo yum clean all
sudo yum makecache
- 测试安装
sudo yum install rh-python36
方案二:【长期推荐】迁移到替代发行版
CentOS 已死,建议尽快迁移!
| 原系统 | 推荐替代 |
|---|---|
| CentOS 7 | Rocky Linux 7(社区延续)或 AlmaLinux 7 |
| CentOS 8 | Rocky Linux 8/9 或 AlmaLinux 8/9 |
| 需要长期支持 | Oracle Linux(免费 + 兼容 RHEL) |
这些系统:
- 100% 二进制兼容 RHEL
- 继续提供 centos-sclo-rh 的等效仓库(如 almalinux-scl)
- 有长期安全更新
🚀 迁移工具:leapp(用于 CentOS 7→8/9),或直接重装。
方案三:禁用该仓库(临时绕过)
如果你不需要 SCL 软件包,可直接禁用该 repo:
sudo yum-config-manager --disable centos-sclo-rh
# 或
sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/CentOS-SCLo-rh.repo
然后继续使用其他仓库(如 EPEL)。
❌ 缺点:无法安装 rh-xxx 开头的软件包。
🔒 补充:验证是否生效
# 查看仓库状态
yum repolist enabled | grep sclo
# 尝试列出可用包
yum --disablerepo="*" --enablerepo="centos-sclo-rh" list available | head
二、📌 总结
| 情况 | 建议操作 |
|---|---|
| 临时修复旧 | CentOS 7 使用 vault.centos.org 替换 baseurl |
| 长期稳定运行 | 迁移到 Rocky Linux / AlmaLinux |
| 不再需要 SCL 包 | 直接禁用 centos-sclo-rh 仓库 |
重要提醒:
自 2024 年 6 月 30 日起,CentOS 7 官方完全终止支持,包括安全更新。
继续使用存在严重安全风险,请务必制定迁移计划。
1. 要查看当前系统是 CentOS 的哪个版本,可以使用以下几种常用命令(适用于 CentOS 6/7/8):
✅ 方法 1:查看 /etc/centos-release(最直接)
cat /etc/centos-release
输出示例
CentOS Linux release 7.9.2009 (Core)
✅ 方法 2:查看 /etc/os-release(标准跨发行版方式)
cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
✅ 方法 3:使用 hostnamectl(仅限 systemd 系统,如 CentOS 7/8)
hostnamectl
输出示例:
Operating System: CentOS Linux 7 (Core)
Kernel: Linux 3.10.0-1160.el7.x86_64
🔍 特别说明:如何区分 CentOS Linux 和 CentOS Stream?
2. 从 CentOS 8 开始,Red Hat 推出了 CentOS Stream(滚动预览版),它和传统的 CentOS Linux(稳定版)不同。
运行以下命令可明确识别:
cat /etc/redhat-release
- 传统方式 CentOS Linux:
CentOS Linux release 8.5.2111
- CentOS Stream:
CentOS Stream release 8
# 或
CentOS Stream release 9
3.📌 总结:快速判断命令
| 目标 | 命令 |
|---|---|
| 查看完整版本号 | cat /etc/centos-release |
| 脚本中获取 VERSION_ID | source /etc/os-release && echo $VERSION_ID |
| 区分是否为 Stream | grep -i stream /etc/os-release |
❗ 注意:CentOS 已停止维护
- CentOS 8:已于 2021 年 12 月 31 日 停止支持
- CentOS 7:已于 2024 年 6 月 30 日 停止支持
如果你的系统仍是 CentOS,强烈建议迁移到 Rocky Linux、AlmaLinux 或 Oracle Linux 以获得安全更新。
三、算法环境下:更新yum环境
在CentOS服务器上部署Python人脸识别算法应用时,可能会遇到一些特定的问题,特别是在使用较旧版本的CentOS时。以下是详细的步骤和注意事项,帮助你在CentOS服务器上成功部署人脸识别算法应用。
1. 更新系统
首先,确保你的CentOS系统是最新的:
sudo yum update -y
2. 安装必要的依赖
安装编译工具和其他必要的库:
sudo yum groupinstall "Development Tools" -y
sudo yum install epel-release -y
sudo yum install numpy scipy matplotlib scikit-image pillow cmake gcc-c++ libpng-devel libjpeg-turbo-devel jasper-devel openexr-devel libtiff-devel -y
3. 安装Python和虚拟环境
如果你还没有安装Python 3.x,可以按照以下步骤进行安装:
sudo yum install python3 python3-pip -y
sudo pip3 install virtualenv
创建并激活虚拟环境:
mkdir my_face_recognition_app
cd my_face_recognition_app
virtualenv venv
source venv/bin/activate
4.安装OpenCV
由于CentOS的默认仓库中可能没有最新的OpenCV版本,我们可以从源码编译安装OpenCV。
下载OpenCV源码
wget -O opencv.zip https://github.com/opencv/opencv/archive/refs/tags/4.5.5.zip
unzip opencv.zip
cd opencv-4.5.5
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j $ (nproc)
sudo make install
sudo ldconfig
安装Python绑定
cd ../..
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.5.zip
unzip opencv_contrib.zip
cd opencv_contrib-4.5.5/modules/python/package
python setup.py install
5. 安装其他依赖
安装项目所需的其他Python库,例如dlib、face_recognition等。你可以将这些库列在requirements.txt文件中。
pip install -r requirements.txt
示例requirements.txt内容:
flask==2.0.1
numpy==1.21.2
scipy==1.7.1
opencv-python-headless==4.5.5.62
dlib==19.22.0
face-recognition==1.3.0
505

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



