CentOS 8 升级到 CentOS Stream

日常系统更新时,报:
Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist

原来,CentoOS 8 已停止维护。(已于 2021 年底停止支持;参见:https://centos.org/news-and-events/1322-october-centos-dojo-videos/

或许你有以下疑问:

2021年CentOS8停止维护转向CentOS的Stream分支对你有啥影响?

CentOS 支持到期 生产环境还有哪些选择

CentOS的未来是CentOS Stream吗?

近期发现 vault.centos.org 无法访问了,造成更新方法失效,这里再介绍另一种:

确定当前版本:

cat /etc/redhat-release
CentOS Linux release 8.3.2011

输入以下命令:(minorver 值为你的版本)

minorver=8.3.2011
sudo sed -e "s|^mirrorlist=|#mirrorlist=|g" \
         -e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/$minorver|g" \
         -i.bak \
         /etc/yum.repos.d/CentOS-*.repo

dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
dnf distro-sync
# ----------
# centos 8 之前的版本,使用:
minorver=6.10
sudo sed -e "s|^mirrorlist=|#mirrorlist=|g" \
         -e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/$minorver|g" \
         -i.bak \
         /etc/yum.repos.d/CentOS-*.repo

参见:
centos-vault 镜像使用帮助

vault 可用的情况下,继续使用 CentOS Stream,那么升级方法如下:

# 将YUM配置文件中源地址更换为vult的URL
sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

# 安装Centos Stream源并且替换成Centos Stream源
dnf install centos-release-stream
dnf swap centos-linux-repos centos-stream-repos
dnf distro-sync

# 完成后,重启
reboot

# 重启完成后,查看当前发行版
cat /etc/centos-release

相关:
新年伊始我的centos8没法更新了
CentOS 8系统迁移至CentOS Stream
从 CentOS 8 平滑升级至 CentOS Stream
CentOS Project shifts focus to CentOS Stream
2021年CentOS8停止维护
CentOS Stream 和 CentOS Linux 比较
centos8平台使用dnf/yum管理软件包
27 个 Linux 下软件包管理工具 DNF 命令例子