Linux 系统逐个或一次性更新

Linux 系统逐个或一次性更新

我正在使用 Fedora 36。我使用 KDE 的 Discover 来查找和安装更新。它需要重新启动。

假设一周内有 7 个系统更新可用。而我整整一周都没有更新系统,所以决定在最后一天更新。

  • 它会仅下载并安装最新更新吗?
  • 或者它会通过 7 次重新启动逐一下载并安装所有 7 个更新?
  • 如果我从终端更新会发生什么sudo dnf upgrade?它的行为是否相同?

如果我只想在周末更新,那么好的做法是什么?


到目前为止我尝试过的事情:

  • 我已经有几天没有更新了,今天我不得不使用 Discover 重新启动两次,直到它停止提供可用更新消息。
  • 我还没试过sudo dnf upgrade。我不知道有什么不同。

注意:Linux 对我来说很新,所以我可能不知道一些显而易见的事情。

答案1

它会只下载并安装最新更新吗?
还是会逐一下载并安装所有 7 个更新,并重启 7 次?

两者都有,也可能都无,因为这 7 个更新适用于不同的组件 - 即您有 7 个单独的软件包等待dnf升级。它们全部是“最新更新”,它们将同时安装。

Linux 中的更新是线性的。如果一周内发布了同一软件包的多个新版本(例如由于最后一刻的更改),这将只算作 1 个“更新”,因为您将始终直接升级到每个软件包的最新版本。Linux 中不进行重叠更新(即,将不同更改修补到同一组件的独立更新)。

只需重启一次即可安装所有更新。实际上,重启对于执行软件包升级来说并不是必要的;重启是为了避免正在运行的应用程序发生奇怪的事情(或升级期间)。

(例如,如果你在某个应用程序所需的库正在升级时打开它,它可能会崩溃,或者加载到一半——插件丢失、图标丢失。Fedora 已从传统的“在线”更新转向基于重启的更新方法,主要是为了避免此类故障。看看设计笔记

更重要的是,如果发布了 OpenSSL 或其他库中的关键安全修复程序,它不会神奇地应用于仍然将旧版本的库加载到内存中的进程 - 它们都必须重新启动,并且只需完全重启就更容易、更可靠。)

至少目前,据我所知,“重新启动以安装”的实际安装阶段最终运行大致相同,dnf upgrade并将立即更新所有软件包,唯一的区别是它会在您的任何应用程序均未运行时完成。

那么你可以直接使用dnf upgrade,但你至少应该等到它完成后再继续你的工作——如果你看到库正在更新,你应该重新启动使用它们的应用程序...假设您可以跟踪哪些应用程序需要什么,这就是为什么 Fedora 只是告诉用户重新启动。从 CLI 运行“重新启动以安装”的正确方法是dnf offline-upgrade

相关内容