为什么 i386 软件包会自动安装在 64 位机器上?

Cbh*_*ihe 5 64-bit 32-bit software-installation

我在 64 位计算机上运行 Trusty Desktop,因此如果我查询已安装的软件包,例如:

$ dpkg-query -l gcc* | grep 'ii '
ii  gcc                      4:4.8.2-1ubuntu6        amd64        GNU C compiler
ii  gcc-4.8                  4.8.4-2ubuntu1~14.04    amd64        GNU C compiler
ii  gcc-4.8-base:amd64       4.8.4-2ubuntu1~14.04    amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-4.8-base:i386        4.8.4-2ubuntu1~14.04    i386         GCC, the GNU Compiler Collection (base package)
ii  gcc-4.8-doc              4.8.4-2ubuntu1~14.04    all          Documentation for the GNU compilers (gcc, gobjc, g++)
ii  gcc-4.8-multilib         4.8.4-2ubuntu1~14.04    amd64        GNU C compiler (multilib files)
ii  gcc-4.9-base:amd64       4.9.1-0ubuntu1          amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-4.9-base:i386        4.9.1-0ubuntu1          i386         GCC, the GNU Compiler Collection (base package)
Run Code Online (Sandbox Code Playgroud)

为什么我会看到那些 i386 安装的软件包?我在该特定安装上有 118 个...是否某些 i386 软件包满足了 amd64 软件包的某些依赖关系?难道是别的什么?操作系统需要它们吗?

注意:我真正问的是“它们为什么在这里? ”而不是“我如何摆脱它们? ”。后一个问题已经很好地涵盖了。

A.B*_*.B. 4

一个简单的命令即可为您提供必要的信息。但首先你必须安装一个漂亮的工具:

sudo apt-get install aptitude
Run Code Online (Sandbox Code Playgroud)

现在检查例如:

aptitude why gcc-4.8-base:i386
Run Code Online (Sandbox Code Playgroud)