如果使用 dpkg -l 表示已安装在所有体系结构中,我如何检查哪个是已安装的软件包版本?

如果使用 dpkg -l 表示已安装在所有体系结构中,我如何检查哪个是已安装的软件包版本?

如果我检查我的软件包列表,dpkg -l我会发现“所有”体系结构中安装了多个软件包。然后,如果我apt policy <name_of_package>使用随机包的名称运行该包,该包表示已为所有架构安装,我会得到以下输出(例如adduser):

adduser:
  Installed: 3.118
  Candidate: 3.118
  Version table:
 *** 3.118 990
        990 http://deb.debian.org/debian buster/main amd64 Packages
        990 http://deb.debian.org/debian buster/main i386 Packages
        500 http://deb.debian.org/debian sid/main amd64 Packages
        500 http://deb.debian.org/debian sid/main i386 Packages
        100 /var/lib/dpkg/status

该软件包只有一个版本,而且我知道三个星号意味着该版本已安装。
好的,但我可以看到 4 个不同的来源,具有不同的架构和版本。
所以
如何检查已安装哪个?或者它们都安装了,所以我安装了同一个包的4个版本?

答案1

adduser是一个独立于体系结构的包;这就是“全部”的意思。它在所有体系结构中都是相同的(通常是因为它包含一种或另一种解释脚本或数据)。

与体系结构无关的包包含在所有特定于体系结构的存储库中,这就是您在 和 中看到该包的amd64原因i386。此外,Debian 10和unstable目前拥有相同版本的adduser.

您只安装了该软件包的一个版本。apt policy显示包含给定包的所有存储库,这就是您在这里看到的内容。

换句话说,您当前已经adduser_3.118_all.deb安装了这些软件包,并且可以从您配置的两个存储库中获取这些软件包,在您dpkg设置为支持的两种体系结构中。

相关内容