重启和离线更新

互联网上反复出现的一个问题是为什么 Fedora Linux 必须重新启动才能进行更新。 事实是,Linux 在技术上不需要重新启动更新。 但还有更多的东西。 在这个简短的指南中,我们将研究为什么 Fedora Linux 要求您重新启动以进行脱机更新。

离线更新

重新启动、应用更新然后再次重新启动的过程称为脱机更新。 您的计算机启动到一个特殊的保存模式,所有其他系统都被禁用并且网络访问不可用。 然后它会应用更新并重新启动。

为什么存在离线更新

离线更新可以保护您。 在过去的二十年里,计算机变得更加复杂。 过去,由于系统本身较小且互连较少,因此可以应用更新而无需过多担心。 多任务处理也处于起步阶段,因此用户实际上并没有同时使用计算机并对其进行更新。

Linux 内核可以在不重新启动的情况下更改文件,但使用该文件的服务或应用程序没有同样的奢侈。 如果应用程序正在使用的文件在应用程序运行时发生更改,那么应用程序将不知道该更改。 这可能会导致应用程序不再以相同的方式工作。 因此,“Linux 不需要重新启动即可更新”的格言是一个名誉扫地的模因。 所有 Linux 发行版都应该重新启动。

离线更新的工作原理

为了使离线更新正常工作,有一些组件在幕后协作。 首先,有包管理器下载更新然后存储它们。 它实际上不会直接应用更新,但它会告诉下一个系统有要应用的更新。

第二部分由 systemd 完成。 当 systemd 启动时,它会查看包管理器是否准备了任何更新。 如果是这种情况,那么 systemd 将不会进入完整的系统启动,而是会启动包管理器并应用更新。 更新完成后,systemd 将最后一次重新启动机器。

软件更新待定 Firefox. 看看 Flatpak 版本的 Firefox 不需要重新启动,因为 Flatpak 的设计考虑了可靠性。

离线更新来自哪里

这个问题最早是在 2009 年发现的 早期的白板讨论 仍然可见。 一旦设计了可能的解决方案,就将其投入开发。

尽管如此,它仍需要多个组件协同工作。 必须对 systemd 进行更改 支持这种特殊的启动流程 包经理也必须了解这个过程。 在那之后,用户有一个支持 UI 很重要,它包含在 2012 年 GNOME 软件中心2021 年的 KDE 发现.

Fedora 18件官方作品. 非常狂野,但也非常可靠。

最后,这个功能是 正式部署在 Fedora 18, 制造 Fedora Linux 是第一个尽其所能确保您的系统可靠和稳定的发行版。 这是一条漫长的道路,但这个功能现在已经存在了将近 10 年。

进行实时更新

既然您已被告知离线更新及其重要性,您当然不会再这样做了……但是如果您这样做了呢? Fedora Linux 不会阻止您,而且由于我们都曾在某个时候使用过 DNF,因此谈论实时更新也可能会很好。

没有什么不好的事情发生

首先,很有可能没有什么不好的事情发生。 也许这只是一个小更新,或者它影响的应用程序目前没有运行。 更新 SDL 不会有什么问题 example,当您不运行游戏时。

请记住,正在运行的系统可能仍然具有先前版本的程序可能包含的漏洞。 如果您在不重新启动应用程序的情况下更新应用程序,那么您仍在运行具有漏洞的旧版本。

许多专业的 Linux 用户,比如那些专业维护服务器的人,通常会本能地知道可以更新哪些应用程序而没有任何风险。 为此,您也只能安装安全更新,这将在另一篇文章中讨论。 对于较大的更新,甚至鼓励专业人士使用 dnf 离线升级 通过终端。

Firefox 需要重启

最常见的不稳定迹象是 Firefox 警告你。 什么时候 Firefox 检测到更新的软件包,它将强制您重新启动浏览器。 Firefox 如果不完全重新启动就无法可靠运行,因此它将强制您重新启动。

这也突出了一个愉快的恢复:一个复杂且安全关键的应用程序,如 Firefox 将帮助您,保护您免受潜在的崩溃或漏洞的影响。 虽然许多人可能认为这是一个大麻烦,但情况可能会更糟。

在 GNOME Boxes 中使用 Ubuntu 20.04.3 进行演示。 我尝试使用触发此错误 Fedora Linux 34 和 35,但在这两种情况下它都完全崩溃了 Firefox. 只是为了说明这一点:这种恢复情况是侥幸。

崩溃

然而,并不是每个应用程序都能如此优雅地恢复,因为大多数应用程序都会崩溃。 Firefox 也可能会崩溃。 虽然你们中的许多人都会熟悉 Firefox 优雅地终止,这仍然是规则的一个例外。

如果有问题的系统是 X Window Server 或 GNOME Shell,那么您的屏幕可能会完全变黑。 在许多情况下,您仍然可以完成更新,但无法确定这一点。 现在,最好的做法是切换到终端视图。

您可以使用 Ctrl-Alt-F3 输入一个纯文本实例 Fedora Linux。 在这里登录后,您可以使用 top 之类的终端应用程序查看更新是否完成。 然后,您可以关闭所有进程并重新启动计算机。

在顶部,您可以通过按“O”然后输入像“COMMAND=dnf”这样的过滤器来过滤某些进程

停电

在这一点上,仍有希望。 启动您的计算机,看看系统是否恢复正常。 如果系统启动到图形环境,一切可能都会好起来的。 如果没有,您将不得不进入纯文本界面 (TTY),并且您应该查看 DNF 的历史并了解幕后发生的事情。

$ dnf history list
$ dnf history info {LAST ITEM}
$ dnf history redo {LAST ITEM}

更多信息可在 DNF 文档. 不能保证重复最后一次更新操作不会导致同样的问题,但这是您目前可以尝试的最佳方法。 删除第三方驱动程序(例如来自 Nvidia 的驱动程序)也可能会有所帮助,因为这会导致与更新相关的问题。

系统变砖

最后,您可以硬砖化您的系统。 如果崩溃的系统恰好是 DNF 或 systemd,那么系统可能无法继续其更新过程。 发生这种情况时,即使重新启动机器也不足以恢复它。

关于现在该做什么,没有一个答案。 首先,你应该得到一个 USB-Stick Fedora Linux。 然后您可以尝试使用 systemd-nspawn 来恢复系统,但这是非常技术性的。 普通用户不妨重新安装 Fedora Linux 并从头开始。

请记住,您的所有文件仍然是安全的。 从 U 盘启动不会损坏它们,如果您确保没有覆盖现有的 /home 分区,那么您的所有个人数据之后仍然会存在。

结束语

直接更新是掷骰子,虽然你可能会很幸运…… 我们倾向于高估自己和我们拥有的机会。 你们中的许多人从未经历过系统变砖,但总的来说,这些故事在社交媒体上很常见。 因此,传播这个词很重要。 鼓励其他人重新启动计算机以应用脱机更新,并在直接应用更新时小心自己。

将来,此类问题可能会完全消失。 系统如 平板包装Fedora 银蓝 拥有使此类崩溃几乎不可能发生的技术,Linux 桌面正在慢慢朝这个方向发展。 未来是光明的,但我们暂时应该使用进度条,就像其他一些操作系统一样。

有任何与个人更新相关的恐怖故事吗? 随时在评论中分享它们。 我还想指出,我和下一个人一样喜欢模因……但它们应该是笑话,而不是技术建议。