阿里云 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
。
本文采用 知识共享署名 4.0 国际许可协议 进行许可