该软件包与另一个未安装的软件包冲突吗?

该软件包与另一个未安装的软件包冲突吗?

我在 Ubuntu MATE 22.04 上。经过 asudo apt updatesudo 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

我认为该问题与阶段性更新无关,原因有二:

  1. 根据我的经验,如果软件包因为分阶段更新而被推迟,那么 nala 不会具体说明推迟的原因。
  2. 我将 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 给出了包裹被扣留的不同原因。我会将此报告为错误。

相关内容