长话短说
最近,在正常的软件升级过程(即,apt upgrade或apt dist-upgrade)中,我开始收到如下消息:
[...]
The following packages have been kept back:
[...]
0 upgraded, 0 newly installed, 0 to remove and [...] not upgraded.
Run Code Online (Sandbox Code Playgroud)
我有什么选择?
注意:这不是此处已经提出的无数类似问题的重复。您应该将我的问题视为此问题的后续问题。
我在我的主 Ubuntu 22.04 系统上遇到了与上面提到的问题完全相同的问题。我昨天更换了服务器,尝试手动安装指定的包,不知何故问题得到了解决。今天,当我尝试安装任何新更新时,我收到消息说我有 32 个软件包被保留。
我有一个类似的 22.04 版本(虚拟)Ubuntu 安装,现在已完全更新,并且该问题尚未发生(具有类似的/etc/apt/sources.list文件)。因此,我尝试比较这些软件包。我以主系统中“保留”的包gir1.2-gstreamer-1.0为例并在我的主系统上运行:
$ sudo apt --installed list | grep gir1.2-gstreamer-1.0
[...]
gir1.2-gstreamer-1.0/jammy,now 1.20.1-1 amd64 [installed,upgradable to: 1.20.3-0ubuntu1]
Run Code Online (Sandbox Code Playgroud)
相同的命令给出输出:
gir1.2-gstreamer-1.0/jammy,now 1.20.1-1 amd64 [installed,automatic]
Run Code Online (Sandbox Code Playgroud)
在我的辅助(虚拟)系统上。
为什么我们会有这种差异?而且,如何使我的主系统充当“自动”安装软件包的(虚拟)系统?
我的“主”系统上的命令输出apt-cache policy gir1.2-gstreamer-1.0如下:
gir1.2-gstreamer-1.0: …Run Code Online (Sandbox Code Playgroud) 因此,我在使用apt. 经过一番研究,这似乎是“分阶段更新”的结果。
apt有关分阶段更新的消息如此不清楚?自从我升级到 13.10 后,软件更新程序就没有显示所有可用的更新。有些会出现并且可以很好地安装,但是一旦它声称所有软件都是最新的,使用sudo apt-get upgrade表明还有更多的软件包等待更新。我可以通过命令行更新它们,但这只能暂时解决问题。我不知道为什么有些人出现而有些人没有。如何让 Update Manager 更新所有软件包?
更新管理器显示:

但是 apt-get 显示了这一点:

谢谢!