![如何从 CentOS 8 切换到 CentOS Stream](https://linux22.com/image/164277/%E5%A6%82%E4%BD%95%E4%BB%8E%20CentOS%208%20%E5%88%87%E6%8D%A2%E5%88%B0%20CentOS%20Stream.png)
有没有办法对 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 映像来安装它。确保您查看了发行说明。