如何禁用多架构支持?

我不想安装任何i386软件包。有没有一种方法可以禁用功能?

1如何从Ubuntu 64位版本中移除所有i386软件包? - bain
6个回答

自从12月10号以来

dpkg --remove-architecture i386

要在amd64安装中摆脱多架构的问题。如果你收到以下类似的消息:
dpkg: error: cannot remove architecture 'i386' currently in use by the database

你在执行之前应该删除所有的i386软件包。
dpkg -l | grep i386

18使用apt-get的正则表达式功能,可以执行apt-get remove .*:i386操作。 - JB.
5或者:sudo aptitude purge '~i ~ri386' - Matthias P.

11.10 & 12.04

多架构支持是通过文件/etc/dpkg/dpkg.cfg.d/multiarch启用的。

如果您重命名此文件并在终端中运行更新,您会注意到i386仓库不再可见。

因此

sudo mv /etc/dpkg/dpkg.cfg.d/multiarch /etc/dpkg/dpkg.cfg.d/multiarch.backup

根据Ben的回答user41220的回答,我做了以下操作:
sudo apt-get remove --purge `dpkg --get-selections | grep i386 | awk '{print $1}'`

那么

sudo dpkg --remove-architecture i386

这对我来说完全没问题。

1除了现有的回答以外,我没有看到任何额外的信息。 - Patrick

首先,按照以下步骤删除所有i386软件包:
sudo apt-get remove --purge `dpkg --get-selections | grep i386 | awk '{print $1}'`

请注意:Skype、Steam、teamviewer等应用也可能会被清除。
然后按照fossfreedoms的建议继续操作。

这对于较新的操作系统是正确的。如果你把这个作为答案,我会投票支持它(因为它简单明了)。 - Benjamin Marwell

在删除该架构之前,有一个更简单的方法是先删除所有该架构的软件包(source; apt man page)。
sudo apt purge .*:i386

如果需要的话(使用dpkg --print-foreign-architectures进行检查),您可以从dpkg中删除该架构。
sudo dpkg --remove-architecture i386

对于那些想要从一开始就禁用多架构支持的人来说,这是一个可以在(init)脚本中使用的一行命令。
[ ! $(dpkg --get-selections | grep -q i386) ] && dpkg --remove-architecture i386

这将在第一次运行时按预期删除i386架构。在连续运行中,它会显示以下警告...
dpkg: 警告:无法删除非外来架构 'i386'
这个一行命令在大多数云服务器上可能很有用,因为默认情况下没有安装i386软件包。虽然这是一个Ubuntu论坛,但这里有一些关于Debian的multiarch的详细信息... https://wiki.debian.org/Multiarch/HOWTO
其他答案建议使用dpkg -l获取软件包列表,然后使用grep过滤结果。根据我的经验,dpkg -l未能显示一些带有i386架构的软件包,但dpkg --get-selections清楚地显示了它们,并将它们标记为package_name:i386。因此,如果我们想要删除先前安装的i386软件包,那么要删除它们,这是实际有效的命令...
apt-get remove --purge `dpkg --get-selections | awk '/i386/{print $1}'`