Linux系统逐一或一次性更新

the*_*utt 2 linux updates

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

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

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

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


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

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

注意:Linux 对我来说是新的,所以我可能不知道明显的事情。

use*_*686 5

\n

它会只下载并安装最新的更新吗?
\n或者它会通过 7 次重启来一一下载并安装所有 7 个更新?

\n
\n

两者都可以,也可以都不是,因为这 7 个更新适用于不同的组件 \xe2\x80\x93,即您有 7 个单独的软件包等待dnf升级。它们都是“最新更新”,并且都会同时安装。

\n

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

\n

只需重新启动一次就足以安装所有更新。执行软件包升级实际上并不需要重新启动;重新启动是为了避免升级后(或升级期间)正在运行的应用程序发生奇怪的事情。

\n

(例如,如果您在升级某个应用程序所需的库时打开该应用程序,它可能会崩溃,或者可能会加载到一半 \xe2\x80\x93 插件丢失、图标丢失。Fedora 已从传统的“在线”更新转变为基于重启的更新方法主要是为了避免这种故障,看一下设计说明

\n

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

\n

至少目前,据我所知,“重新启动安装”的实际安装阶段最终运行或多或少相同,dnf upgrade并且会立即更新所有软件包,唯一的区别是它会在没有任何软件包的情况下完成的应用程序正在运行。

\n

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

\n

  • 请注意,这并不一定适用于整个系统(至少在传统的 Linux 发行版上),它更多的是关于包本身。每个单独的软件包都是线性更新的,但从技术上来说,可以先升级一些软件包,然后再升级其他软件包,从而导致系统的整体非线性更新(尽管这通常“非常不鼓励”,因为它通常会导致不兼容和所有种破损,我只是将其称为“技术上可能的”)。 (3认同)