简而言之
最近,在正常的软件升级过程中(即apt upgrade
或apt dist-upgrade
),我开始收到类似以下的消息:
[...]
The following packages have been kept back:
[...]
0 upgraded, 0 newly installed, 0 to remove and [...] not upgraded.
什么选择可以考虑?
注意:这与已经在此处提出的众多类似问题不是重复。您应该将我的问题视为this question的后续问题。
我在我的主要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]
相同的命令会输出:
gir1.2-gstreamer-1.0/jammy,now 1.20.1-1 amd64 [installed,automatic]
在我的次要(虚拟)系统上。
为什么我们有这个差异?我该如何让我的主系统表现得像安装了该软件包的(虚拟)系统一样“自动”?
在我的“主要”系统上,命令apt-cache policy gir1.2-gstreamer-1.0
的输出如下:
gir1.2-gstreamer-1.0:
Installed: 1.20.1-1
Candidate: 1.20.3-0ubuntu1
Version table:
1.20.3-0ubuntu1 500 (phased 30%)
500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
*** 1.20.1-1 500
500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
100 /var/lib/dpkg/status
而在我的“次要”(虚拟)系统上就是这样的:
gir1.2-gstreamer-1.0:
Installed: 1.20.1-1
Candidate: 1.20.1-1
Version table:
1.20.3-0ubuntu1 1 (phased 30%)
500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
*** 1.20.1-1 500
500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
100 /var/lib/dpkg/status
什么是值
500
(在 (phased...
行中)的含义?在两个系统上,
grep -ri phased /etc/apt
返回空。
在我的主系统上执行了命令
sudo apt update && sudo apt upgrade gir1.2-gstreamer-1.0
后:$ sudo apt --installed list | grep gir1.2-gstreamer-1.0
[...]
gir1.2-gstreamer-1.0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed]
$ apt-cache policy gir1.2-gstreamer-1.0
gir1.2-gstreamer-1.0:
Installed: 1.20.3-0ubuntu1
Candidate: 1.20.3-0ubuntu1
Version table:
*** 1.20.3-0ubuntu1 500 (phased 40%)
500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
100 /var/lib/dpkg/status
1.20.1-1 500
500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
现在,在我的辅助系统上,我也开始遇到这个问题了。
$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
language-pack-gnome-en
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
apt-cache policy gir1.2-gstreamer-1.0
。 - nobodysudo apt update && sudo apt upgrade gir1.2-gstreamer-1.0
。 - nobody