Update-manager 不会让所有软件包保持最新。这是怎么回事?

Update-manager 不会让所有软件包保持最新。这是怎么回事?

我注意到,对于当前的 Groovy,如果我仅依赖图形更新管理器,某些软件包将无法保持最新​​状态。目前涉及 18 个软件包:gnome-shell-common gnome-shell-extension-prefs gnome-shell libpulse-dev libpulse-mainloop-glib0 libpulse0(amd64 和 i386)libpulsedsp lshw pulseaudio-module-bluetooth pulseaudio-utils pulseaudio qemu-block-extra qemu-system-common qemu-system-data qemu-system-gui qemu-system-x86 qemu-utils

任何aptapt-get full-upgradedist-upgradeupgrade命令都会升级软件包,但更新管理器不会,它会一直告诉我我的系统是最新的。即使我打开 tty(纯文本)会话,我也会收到没有可用更新的消息(我想这意味着更新管理器在这里也起作用了)。

这是一个错误,还是有意为之?但如果这是有意为之,那么逻辑是什么?

编辑 :执行后apt update,更新管理器检测到一些更新,其中包括可能在此期间添加的安全更新,但出于某种神秘的原因,它随后决定也升级与 Pulse Audio 相关的软件包。

然后我按顺序运行以下命令(包括输出):

$ apt list --upgradable

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Listing...
gnome-shell-common/groovy-updates,groovy-updates 3.38.2-1ubuntu1~20.10.1 all [upgradable from: 3.38.1-1ubuntu1.1]
gnome-shell-extension-prefs/groovy-updates 3.38.2-1ubuntu1~20.10.1 amd64 [upgradable from: 3.38.1-1ubuntu1.1]
gnome-shell/groovy-updates 3.38.2-1ubuntu1~20.10.1 amd64 [upgradable from: 3.38.1-1ubuntu1.1]
lshw/groovy-updates 02.18.85-0.3ubuntu2.20.10.1 amd64 [upgradable from: 02.18.85-0.3ubuntu2]
qemu-block-extra/groovy-updates 1:5.0-5ubuntu9.3 amd64 [upgradable from: 1:5.0-5ubuntu9.2]
qemu-system-common/groovy-updates 1:5.0-5ubuntu9.3 amd64 [upgradable from: 1:5.0-5ubuntu9.2]
qemu-system-data/groovy-updates,groovy-updates 1:5.0-5ubuntu9.3 all [upgradable from: 1:5.0-5ubuntu9.2]
qemu-system-gui/groovy-updates 1:5.0-5ubuntu9.3 amd64 [upgradable from: 1:5.0-5ubuntu9.2]
qemu-system-x86/groovy-updates 1:5.0-5ubuntu9.3 amd64 [upgradable from: 1:5.0-5ubuntu9.2]
qemu-utils/groovy-updates 1:5.0-5ubuntu9.3 amd64 [upgradable from: 1:5.0-5ubuntu9.2]

$ apt-cache policy gnome-shell
gnome-shell:
  Installed: 3.38.1-1ubuntu1.1
  Candidate: 3.38.2-1ubuntu1~20.10.1
  Version table:
     3.38.2-1ubuntu1~20.10.1 500
        500 http://fr.archive.ubuntu.com/ubuntu groovy-updates/main amd64 Packages
 *** 3.38.1-1ubuntu1.1 100
        100 /var/lib/dpkg/status
     3.38.1-1ubuntu1 500
        500 http://fr.archive.ubuntu.com/ubuntu groovy/main amd64 Packages

# apt update

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Hit:1 http://fr.archive.ubuntu.com/ubuntu groovy InRelease
Hit:2 http://security.ubuntu.com/ubuntu groovy-security InRelease
Hit:3 http://fr.archive.ubuntu.com/ubuntu groovy-updates InRelease
Hit:4 http://fr.archive.ubuntu.com/ubuntu groovy-backports InRelease
Reading package lists...
Building dependency tree...
Reading state information...
10 packages can be upgraded. Run 'apt list --upgradable' to see them.

然后我再次运行apt list --upgradableapt-cache policy gnome-shell得到与之前完全相同的输出apt update(我将重定向的输出与进行了比较cmp)。update-manager仍然说我的系统是最新的。

答案1

这不是一个错误。你已经发现了分阶段更新

分阶段更新是 Ubuntu 使用的一种巧妙的风险管理(双重保险)技术。

这个想法是,如果一个灾难性的软件包升级漏过了 QA 评审和提议的测试,我们不要在同一天将该升级发送给所有人。相反,将该升级分散到一周内。灾难发生几个小时后,社区警报将导致新软件包被识别和撤下……从而保护 90-95% 的社区。

这是个好主意,但如果从内部来看,它肯定会令人困惑。

这就是为什么 apt 和 Update Manager 之间存在差异的原因:

  • 20.10 中的 Apt 不使用分阶段升级。(将于 21.04 发布
  • 更新管理器确实使用分阶段升级。

因此,在 20.10 中,两者的输出无法直接比较。

无论您选择如何升级,您仍将获得所有升级。您可能只是在不同的日子获得部分套餐,仅此而已。

相关内容