From Offline Updates are Coming – KDE neon Developers’ Blog:
Unlike regular updates offline updates are not applied immediately but are only download and marked for installation on the next system restart. This has the tremendous advantage that you no longer need to interrupt whatever you are doing to update the system. They also prevent the system from entering a curious state of inconsistency resulting in an increased chance of bugs and crashes just after updating. Previously you might have been angrily looked at by Firefox, had Dolphin crash on you, or even got locked out of the session because the lockscreen jumped off a cliff after you applied an update. The reason for this is that most complex pieces of software really do not fare well if essential files change out from under it. Offline updates solve this problem by simply moving the installation stage to a time when the system is in a less vulnerable state.
What is changing exactly?
Starting today if you use Discover to update your KDE neon Unstable installation, instead of immediately applying the update it will download the package and notify you that you need to restart to complete the update. Upon starting the next time the update is finally applied.
Any other package management frontend will not perform offline updates. This most notably also includes the terminal interfaces pkcon and apt-get. Application distribution systems such as flatpak and snap are equally unaffected by this because they generally are not able to break the same way as system software can.
此功能的效果是……
……
从 Plasma 5.22 开始,此功能将是可选的:
Add a configuration setting for offline updates (!111) · Merge requests · Plasma / Discover · GitLab (kde.org)
为该功能辩护的主要理由是:
There is no code in package management which can prevent this. If you update a library while something that is using it is running, then it WILL break if the new version is ABI incompatible.
也有意见认为使用ostree会更好。
From Debian FAQ:
8.2. Debian claims to be able to update a running program; how is this accomplished?
The kernel (file system) in Debian GNU/Linux systems supports replacing files even while they’re being used.
We also provide a program called start-stop-daemon which is used to start daemons at boot time or to stop daemons when the runlevel is changed (e.g., from multi-user to single-user or to halt). The same program is used by installation scripts when a new package containing a daemon is installed, to stop running daemons, and restart them as necessary.
debian-goodies
软件包提供checkrestart
命令检测是否存在程序需要重新启动以使用库的更新版本,该程序仅适用于Debian及其衍生分发。软件包needrestart
提供类似的功能,但是可以用于其他分发。二者的算法不同,因此可能会显示不同的结果。