我安装了超过 1400 个 APT 包,它们将它们的架构指定为 amd64。大约180个是i386。至少一些 i386 软件包也安装了它们的 amd64 对应物。
我假设只有 amd64 软件包会安装在 64 位机器上。为什么我安装了一些 i386 软件包?
而且,对于奖励积分,APT 如何处理两种架构中的相同包?它是否有某种方法可以知道必须安装两者的确切实例?
仅供参考,我从我的 APT 状态文件中了解了有关已安装软件包状态的所有这些信息。
我安装了超过 1400 个 APT 包,它们将它们的架构指定为 amd64。大约180个是i386。至少一些 i386 软件包也安装了它们的 amd64 对应物。
我假设只有 amd64 软件包会安装在 64 位机器上。为什么我安装了一些 i386 软件包?
而且,对于奖励积分,APT 如何处理两种架构中的相同包?它是否有某种方法可以知道必须安装两者的确切实例?
仅供参考,我从我的 APT 状态文件中了解了有关已安装软件包状态的所有这些信息。
由于程序无法使用库,因此这些
i386
软件包已安装在您的amd64
系统上。i386
amd64
这就是
amd64
计算机能够运行i386
程序和amd64
程序的方式。如果amd64
程序请求libxml2
,将调用的amd64
版本。libxml2
如果i386
程序请求libxml2
,并且收到版本amd64
,则它们不兼容 - 相反,它会收到.i386
libxml2
i386
因此,安装和amd64
软件包的原因是为了系统i386
上的程序支持amd64
。除非另有明确说明,否则安装了 amd64 的 Ubuntu 系统上的所有软件包都是 amd64。
列出
*-i386
的包是体系结构的兼容性包,amd64
通常需要作为已安装包的依赖项。这样,您可以安装一个可用于为其编写的
amd64
体系结构(包的amd64
版本)的包,而无需“添加”这个“ ”。i386
i386
foreign-architecture
但是,如果一个包被列为
*:i386
,它就是一个i386
包。某些软件包仅作为 i386 版本提供。这似乎在专有软件包中更为常见,因此这里经常出现葡萄酒问题,因为我们都知道如果没有 x86(32 位)目录,Windows 将无法运行很多东西。
话虽如此,我相信在较新版本的 Ubuntu 上默认启用 i386 外部架构。
您可以删除系统上所有软件包的 i386 版本,但您应该谨慎操作,因为这可能会导致与 Wine 等应用程序的兼容性问题。
不过请放心,Ubuntu 和 apt 将始终默认并安装
amd64
软件包的版本而不是i386
版本(Wine 除外)。通常,您必须指定i386
版本,如果未指定拱门,则系统几乎总是会安装和使用该amd64
版本(如果可用或已安装)。