SDB:系统升级到 Leap 15.5

跳转到:导航搜索
本指南演示如何使用 Zypper 进行 openSUSE Leap 15.4 到 openSUSE Leap 15.5 的实时分发升级

从先前版本进行实时升级是官方支持的。这允许您在不重新加载所有内容的情况下,就地执行完整的操作系统升级。


摘要

本页说明如何运行一系列命令行步骤来实时升级您的 Leap 15.4 系统到最新的 openSUSE Leap 15.5。

实时升级既有优点也有缺点。

优点包括

  • 您只需下载需要升级的软件包,从而使用更少的带宽。
  • 在升级过程中,您仍然可以使用您的工作站(尽管不建议这样做);唯一停机时间是升级后的重启。
  • 您不需要使用 DVD,也不需要 DVD 刻录机。您不需要使用 USB 密钥。这是因为您启动现有的系统,并通过网络安装所有内容。

缺点

  • 如果由于任何原因,升级中断(例如断电、网络断开连接),并且进程无法继续,您可能会留下一个损坏的系统(具体取决于进程停止的位置)。
  • 如果您有多个系统需要升级,每次都会使用带宽,因此下载 ISO 镜像可能更好。
  • 它不会执行离线 DVD 升级所做的所有清理和维护。

其他可能性:离线升级,又称传统升级或 DVD 升级。有关更多信息,请阅读 离线升级。此升级方法更安全、更通用。除非您有充分的理由,否则请使用 离线升级方法。


请按以下方式确定您当前拥有的 openSUSE 版本

lsb_release -d

请注意,原则上,此升级过程仅被视为“尽力而为”。这意味着由于某些第三方软件包和无数可能的配置,某些组合可能会导致升级失败。

警告:在升级时不要跳过版本!例如,不要从 15.3 升级到 15.5。相反,先从 15.3 升级到 15.4,然后再从 15.4 升级到 15.5。

如果您有兴趣从 openSUSE Leap 迁移到 SUSE Linux Enterprise,请遵循 我们的迁移到 SUSE Linux Enterprise 指南


额外仓库处理

支持的起始点不一定包括您可能添加的任意 openSUSE 构建服务仓库。在 Leap 15.2 之前,我们建议您先禁用所有 OBS 仓库,然后执行升级,最后重新启用它们。

Zypper dup 现在可以更好地处理升级期间的额外仓库。删除仓库会导致问题,即从其安装的每个软件包将回退到另一个仓库(如果找到),删除,或保留在旧版本,具体取决于管理员的选择。最好让仓库保持活动状态。一个典型的例子是 Packman。

但是,系统升级可能是删除一些仓库的绝佳机会,因为过多的仓库会使维护复杂化。例如,假设我们激活了一些 Xfce 或 Plasma 仓库以获取较新版本(假设我们需要一个功能或修复在较新版本中处理):现在是恢复到主流版本的绝佳机会。这将是考虑删除所有我们真正不需要的 HOME 仓库的机会。

我们删除的每个仓库都会导致 zypper 询问如何处理从它们安装的软件包:保留或使用供应商更改进行升级。如果打算在系统升级后添加回仓库,则策略将是“保留”,否则将是“更新”。我们可以使用 "--allow-vendor-change",但这可能会产生意想不到的后果,因为 zypper 随后会评估是否应该从另一个仓库获取某个版本的软件包,并考虑它们的优先级。

因此,您必须选择要走哪条路,作为管理员 ;-)

升级

请确保您阅读了 新版本中令人最恼火的错误列表。其中一些可能会影响升级过程。通常,在错误旁边会列出一些解决方案或解决方法,因此请确保您已为即将出现的问题做好准备。

此外,请阅读 发行说明,其中列出了新版本中的更改和故障。


备份

备份您不想丢失的所有数据!

我们建议使用基于 btrfs 的安装和 snapper openSUSE:Snapper 教程,以便轻松回滚。安装 rollback-helper 将帮助您清理 SCC,以防您想撤销文件系统更改和整个注册过程。

确保已更新

支持的起始点是已应用所有当前更新的 openSUSE Leap 15.4。以下步骤向您展示了如何在升级到下一个版本之前将您的 openSUSE 分发更新到最新软件包。

自 openSUSE Leap 15.3 以来,有三个更新仓库。这在发行说明中有解释:https://doc.opensuse.net.cn/release-notes/x86_64/openSUSE/Leap/15.3/#installation-new-update-repos

1. 检查 3 个更新仓库是否已存在且已启用,并在升级前进行更新。

zypper repos -u

检查是否存在以下 3 个 URI 的仓库,并且已启用列中的值为,如下例所示

#  | Name                      | Enabled | Refresh | URI
---+---------------------------+---------+---------+----------------------------------------------------
1  | repo-update               | Yes     | Yes     | http://download.opensuse.org/update/leap/15.4/oss/
2  | repo-backports-update     | Yes     | Yes     | http://download.opensuse.org/update/leap/15.4/backports/
3  | repo-sle-update           | Yes     | Yes     | http://download.opensuse.org/update/leap/15.4/sle/

如果已启用列显示,请使用以下命令启用它

zypper modifyrepo --enable repo-update
其中“repo-update”是更新仓库的名称。

如果所有 3 个都存在且已启用,请继续执行步骤 3

2. 添加更新仓库

添加缺少的仓库

zypper addrepo --check --refresh --name 'repo-update' http://download.opensuse.org/update/leap/15.5/oss/ repo-update
zypper addrepo --check --refresh --name 'repo-backports-update' http://download.opensuse.org/update/leap/15.5/backports/ repo-backports-update
zypper addrepo --check --refresh --name 'repo-sle-update' http://download.opensuse.org/update/leap/15.5/sle/ repo-sle-update

3. 将 /var/cache 移动到单独的子卷

此步骤不适用于 Leap 15.3 及更高版本。

4. 将系统更新到最新软件包

zypper refresh
zypper update

有关更多信息,请阅读 Zypper 使用



5. 更新仓库

检查 /etc/zypp/repos.d/ 中定义的 Leap 仓库是否已经在 URI 中使用 $releasever 变量。

可以使用以下命令完成此操作

grep baseurl /etc/zypp/repos.d/*.repo | grep -v releasever

如果它们仍然硬编码为特定的 Leap 版本号,则首先需要修改它们。可以使用以下命令完成此操作

sudo sed -i 's/15.4/${releasever}/g' /etc/zypp/repos.d/*.repo

6. 使用新的仓库刷新

刷新所有仓库到新的 15.5

zypper --releasever=15.5 refresh

注意:刷新尚未永久更改releasever变量!

在刷新为新的 15.5 时,我收到如下错误

Repository 'network' is invalid.
[network|http://download.opensuse.org/repositories/network/openSUSE_Leap_15.5/] Valid metadata not found at specified URL

这是由于以下仓库的重新定位造成的

http://download.opensuse.org/repositories/network/openSUSE_Leap_15.4/
http://download.opensuse.org/repositories/network/15.5/

请务必更正任何未找到的仓库:最好禁用它们。

7. 执行完整的分发升级

现在执行完整的分发升级。

Icon-warning.png
警告:强烈建议您在 X 窗口图形模式之外运行升级。因此,建议您从运行级别 3(文本 + 网络)或虚拟控制台运行该命令。不幸的是,许多时候 WIFI 连接仅在运行级别 5 中管理/可用,因此虚拟文本控制台可能是在后台保持登录到图形控制台的同时的最佳选择。人们在升级过程中 X 会话停止/崩溃,导致升级中止,进而使系统处于不一致状态。要更改为运行级别 3,请参阅 SDB:Switch runlevel。要保持在运行级别 5,但使用“虚拟控制台”,请键入 control-alt-F1(例如)。
zypper --releasever=15.5 dup --download-in-advance

使用上述命令,zypper 将提前下载所有软件包 - 如果您的互联网连接可能失败,这将更可靠。

完成 dup 后,openSUSE 会将 releasever 变量设置为新版本。

如果您在官方发布日期之前执行了上述分发升级,您可能已安装了发布候选版 (RC) 或里程碑版本,现在需要重复最终的 zypper dup 步骤才能接收最终版本。

8. 重启

升级后,建议重启以启动新的内核和较新版本的其他所有内容。

之后

发现并享受 :)

此外,可以不时运行 zypper up 以确保您拥有已启用各种仓库的最新可用软件包。YOU(Yast Online Update)仅解决官方仓库的安全更新。