如何從 CentOS 8 切換到 CentOS Stream
有什麼方法可以就地升級到 CentOS Stream 嗎?我目前正在執行 CentOS 8,出於各種原因想切換到新的 Stream 版本。是否可以不必重新安裝作業系統?
編輯:請查看Anthony Geoghegan 的最新建議答案。
這應該可以工作,因為 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
)。我不會在生產伺服器上或沒有正常備份的情況下這樣做。
之後,宣布不再支持 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。我還沒有在生產伺服器上複製這個過程。:)