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 上运行旧服务的场景(如生产环境未及时迁移)。

  1. 步骤(以 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 7Rocky Linux 7(社区延续)或 AlmaLinux 7
CentOS 8Rocky 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_IDsource /etc/os-release && echo $VERSION_ID
区分是否为 Streamgrep -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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanduo112

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值