我在 Ubuntu MATE 22.04 上。经过 asudo apt update
和sudo apt list --upgradable
我得到以下输出:
apt-utils/jammy-updates 2.4.8 amd64 [upgradable from: 2.4.7]
apt/jammy-updates 2.4.8 amd64 [upgradable from: 2.4.7]
libapt-pkg6.0/jammy-updates 2.4.8 amd64 [upgradable from: 2.4.7]
当我尝试使用 升级时sudo apt upgrade
,所有 3 个包都被保留。
如果我sudo nala upgrade
这样做(nala 只是我更喜欢的 apt 的另一个前端,因为它更具信息量),它会解释为什么某些软件包被保留下来:
The following packages were kept back:
apt
└── apt conflicts with apt-transport-https
libapt-pkg6.0
└── libapt-pkg6.0 (!= 2.4.8) will break libapt-pkg
Nala was unable to determine why these were held:
apt-utils
我对 apt 被阻止的原因感到困惑。它说 apt 与 apt-transport-https 冲突,但据我所知,我的系统上没有安装 apt-transport-https。
dpkg -l apt-transport* 的输出:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-============-============-=================================
un apt-transport-https <none> <none> (no description available)
输出apt-cache policy libapt-pkg6.0
:
libapt-pkg6.0:
Installed: 2.4.7
Candidate: 2.4.8
Version table:
2.4.8 500 (phased 40%)
500 http://mirror.il-jr.kamatera.com/ubuntu jammy-updates/main amd64 Packages
*** 2.4.7 100
100 /var/lib/dpkg/status
2.4.5 500
500 http://mirror.il-jr.kamatera.com/ubuntu jammy/main amd64 Packages
输出dpkg -l | grep libapt-pkg
:
ii libapt-pkg-perl 0.1.40build2 amd64 Perl interface to libapt-pkg
ii libapt-pkg6.0:amd64 2.4.7 amd64 package management runtime library
ii python-apt-common 2.3.0ubuntu2.1 all Python interface to libapt-pkg (locales)
ii python3-apt 2.3.0ubuntu2.1 amd64 Python 3 interface to libapt-pkg
我认为该问题与阶段性更新无关,原因有二:
- 根据我的经验,如果软件包因为分阶段更新而被推迟,那么 nala 不会具体说明推迟的原因。
- 我将 99-Phased-Updates 文件添加到 /etc/apt/apt.conf.d 以禁用分阶段更新,但问题仍然存在。
有人可以解释这种行为以及如何解决这个问题吗?
答案1
尽管我不得不认为这些软件包被保留下来是因为分阶段更新以外的其他原因,但看起来分阶段更新实际上是导致这些软件包被保留下来的原因。
使用 /etc/apt/apt.conf.d/ 目录中的文件禁用分阶段更新,如什么是分阶段更新?为什么 Ubuntu 使用它们?对我来说不起作用,但sudo apt -o APT::Get::Always-Include-Phased-Updates=true full-upgrade
按照@Artur Meinild 的建议运行确实安装了所有三个包。
这里最大的困惑是 nala 给出了包裹被扣留的不同原因。我会将此报告为错误。