如何从 Ubuntu 64 位中删除所有 i386 包?

如何从 Ubuntu 64 位中删除所有 i386 包?

随着时间的推移,我安装了许多不再需要的 i386 软件包。我该如何清理系统并只保留 amd64 软件包?

答案1

其他自动化解决方案很危险,而且并不总是有效(1),所以这里有另一种方法

sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`

或者

sudo apt-get purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`

(尝试始终只使用其中一种工具。由于在存在依赖性问题时 aptitude 效果会更好,所以我更喜欢它。)

好主意

dpkg --remove-architecture i386

有可能

dpkg --print-foreign-architectures

(1)其他命令也列出了名称中只有 i386 的软件包(尽管它们是用于 64 位架构的),正则表达式不起作用,dpkg 显示已经被删除但仍有配置文件的软件包(dpkg-l 命令 显示“rc”而不是“ii”作为状态)。

答案2

我对所有 32 位软件包进行了如下处理:

sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`

答案3

如果它们不妨碍你,我就把它们留在原处。

如果你坚持要删除,使用dpkg -l | grep i386创建 i386 软件包列表。你可以在之后删除它们仔细检查与类似的东西sudo apt-get purge <package-name>

答案4

如果有人想知道,有一种更明智、更优雅的方法可以做到这一点。上一个答案希望做同样的事情,但搜索失败了,因为架构实际上不是包名称的一部分,除非在特殊情况下。

以 root 身份(或使用 sudo)运行:

aptitude remove ~i~ri386

如果你还没有使用过 aptitude 而不是 apt-get,那就试试吧。它真的很棒。你可以找到 aptitude 的搜索词列表这里

相关内容