我想知道为什么upgrade有时不想升级系统的某些部分,而dist-upgrade确实如此。这是运行后的示例apt-get upgrade:
apt-get upgrade:
rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Run Code Online (Sandbox Code Playgroud)
与apt-get dist-upgrade:
rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
linux-headers-3.0.0-13 linux-headers-3.0.0-13-generic
linux-image-3.0.0-13-generic …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)