Loading

阿里云 CentOS 8.2 停服后 yum / dnf 无法安装更新

CentOS 8 在去年12月31日停止服务后,dnf 仓库已经清空,可以查看仓库中 mirrors.aliyun.com/centos/8/readme 的废弃说明:

This directory (and version of CentOS) is deprecated.  

腾讯云相对好点,目前还并没有同步这个变化,仓库中还保留着最后一个 CentOS 8 版本的软件源。

阿里云的轻量应用服务器,目前仍旧支持 8.2 镜像,使用该镜像的服务器,由于 dnf 仓库已经清空,你其实是没有办法使用 dnf 进行更新,安装软件的。

如果是个人学习试验,解决的方法就是尽快迁移到 8 stream去。如果是企业生产,可以考虑迁移到 openanolis, 迁移方法详见官方文档: CentOS 8迁移Anolis OS 8手册

本文提供一个在 CentOS 8 停服软件源被清空后,将 CentOS 8.2 迁移到 CentOS Stream 8 的方法。

CentOS 的软件安装版本号判断,是依据变量配置文件进行的,因此,我们首先可以修改版本号变量的配置文件

echo "8-stream" > /etc/yum/vars/releasever

然后再进行缓存构建

dnf clean all && dnf makecache

此时你应该可以通过 dnf 的 swap 命令还切换到 stream 了

dnf update --allowerasing

dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
dnf distro-sync

---update 2022/3/24 ---

或者参考 https://developer.aliyun.com/mirror/centos 使用vault源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/CentOS-Base.repo && sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/CentOS-Base.repo && sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/CentOS-AppStream.repo

dnf clean all && dnf makecache
dnf update --allowerasing


dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
dnf distro-sync

dnf swap 时,disablerepo + enablerepo 参数可让命令仅使用 extras 仓库。
distro-sync 可能会由于 epel 的 repo 报错,可依据提示删除该 repo 文件 rm CentOS-epel.repo

posted @ 2022-03-23 12:54  wswind  阅读(571)  评论(0编辑  收藏  举报