我在当前的 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
。
任何apt
or apt-get
full-upgrade
, dist-upgrade
orupgrade
命令都会升级软件包,但不会升级更新管理器,它会一直告诉我我的系统是最新的。即使我打开一个 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 --upgradable
andapt-cache policy gnome-shell
并得到与之前完全相同的输出apt update
(我将重定向的输出与 进行了比较cmp
)。update-manager
仍然说我的系统是最新的。
这不是一个错误。您已经发现了分阶段更新。
Phased Updates 是 Ubuntu 使用的一种漂亮的小风险管理(带吊带)技术。
这个想法是,如果一个灾难性的包升级要通过 QA Review 和建议的测试,我们不要在同一天将该升级发送给每个人。相反,将升级分散在一周内。灾难袭击 repos 几个小时后,社区警报将导致新包被识别并拉出……从而保护 90-95% 的社区。
这是一个好主意,但如果你从内部看,它肯定会令人困惑。
这就是 apt 和 Update Manager 之间存在差异的原因:
所以两者的输出在 20.10 中没有直接可比性。
无论您选择如何升级,您仍将获得所有升级。您可能会在不同的日子收到一些包裹,仅此而已。