从 10.04 升级到 12.04 后,我尝试安装不同的软件包。例如 ia32-libs 和 Skype (4.0)。
尝试安装这些时,我收到“无法纠正问题,您保存了损坏的软件包”错误消息。
命令的输出:
sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)
运行后:
sudo dpkg --configure -a
foo@foo:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud) 长话短说
最近,在正常的软件升级过程(即,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)