如何从 CentOS 8 切换到 CentOS Stream

如何从 CentOS 8 切换到 CentOS Stream

有没有办法对 CentOS Stream 进行就地升级?我目前正在运行 CentOS 8,出于各种原因想切换到新的 Stream 版本。是否可以无需重新安装操作系统?

答案1

之后,宣布不再支持 CentOS 8(于 2021 年 12 月 31 日终止支持),升级到 CentOS Stream 成为官方推荐的继续接收软件更新 (RPM) 的途径。

以下是我按照以下说明所做的笔记从 CentOS Linux 转换为 CentOS Stream

1. 安装 CentOS-Stream 发行文件。

dnf install centos-release-stream

该软件包安装以下文件:

/etc/dnf/vars/stream
/etc/yum.repos.d/CentOS-Stream-AppStream.repo
/etc/yum.repos.d/CentOS-Stream-Base.repo
/etc/yum.repos.d/CentOS-Stream-Debuginfo.repo
/etc/yum.repos.d/CentOS-Stream-Extras.repo
/etc/yum.repos.d/CentOS-Stream-Media.repo
/etc/yum.repos.d/CentOS-Stream-PowerTools.repo
/etc/yum.repos.d/CentOS-Stream-Sources.repo
/etc/yum.repos.d/CentOS-Stream-Vault.repo
/etc/yum.repos.d/CentOS-Stream-centosplus.repo

2. 将centos-linux存储库替换为centos-stream存储库:

dnf swap centos-{linux,stream}-repos

上面使用了 Bash 的大括号扩展运行此命令:

dnf swap centos-linux-repos centos-stream-repos

它取代了以下软件包:

centos-release-stream
centos-release
centos-repos

centos-stream-repos
centos-stream-release

3. 更新所有软件包以匹配所有启用的存储库中可用的最新版本

sudo dnf distro-sync

对我来说,这安装了大量的软件包,删除了旧的内核软件包并降级了以下软件包:

httpd-2.4.37-30.module_el8.3.0+462+ba287492.0.1.x86_64
httpd-filesystem-2.4.37-30.module_el8.3.0+462+ba287492.0.1.noarch
httpd-tools-2.4.37-30.module_el8.3.0+462+ba287492.0.1.x86_64

但是,它在尝试升级filesystem包时失败,并且进一步尝试运行dnf update失败,原因如下:

解压 rpm 包 filesystem-3.8-4.el8.x86_64 时出错

这是因为我在/mnt.卸载它可以filesystem升级包并允许操作成功完成:

$ cat /etc/centos-release
CentOS Stream release 8

注意:我只将自己的工作站转换为 CentOS Stream。我尚未在生产服务器上复制此过程。 :)

答案2

编辑:请查看安东尼·盖根的回答获取最新建议。

这应该可以工作,因为 CentOS Stream 只是 CentOS 8 之上的附加存储库正如(非官方)centosfaq.org 上提到的

我在我的开发机器上这样做了:

$ dnf history centos-release-stream
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
   156 | update --allowerasing    | 2020-03-27 14:10 | E, I, U        |  127  <
   154 | install -y centos-releas | 2020-03-27 14:04 | Install        |    1 > 

这导致了以下启用的存储库

$ dnf repolist enabled | grep CentOS
AppStream                 CentOS-8 - AppStream
BaseOS                    CentOS-8 - Base
PowerTools                CentOS-8 - PowerTools
Stream-AppStream          CentOS-Stream - AppStream
Stream-BaseOS             CentOS-Stream - Base
Stream-extras             CentOS-Stream - Extras
centosplus                CentOS-8 - Plus
extras                    CentOS-8 - Extras
fasttrack                 CentOS-8 - fasttrack

不过,我需要摆脱一些手动编译的包(--allowerasing)。我不会在生产服务器上或没有有效备份的情况下执行此操作。

答案3

如果您的 Centos 8 生命周期已结束并且无法使用

dnf 安装 centos-release-stream

由于Centos 8 repos已经消失,您可以在网上搜索centos-release-stream包并将其下载到您的Centos 8并使用

dnf 安装 centos-release-stream-8.1-1.1911.0.7.el8.x86_64.rpm

作为本地文件,然后继续本文提到的过程。这个对我有用。

答案4

从来没听说过。备份您的系统并启动您选择的 Stream 映像来安装它。确保您查看了发行说明

相关内容