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


Answers:


15

如果它们不妨碍您,我将把它们留在原处。
如果您坚持要删除,请使用dpkg -l | grep i386创建一个i386软件包列表。您可以后删除这些细心核对喜欢的东西sudo apt-get purge <package-name>


2
除非在多体系结构打破了才能,否则就不能很好地工作了:P
风滚草

apt-get purge <package-name>应该仍然可以。
伊利亚·卡根

2
“经过仔细检查” –含糊不清。请更清楚。
kevinarpe 2014年

1
我在USB上有一个i386系统,有时我在amd64机器上使用它,现在我只想做逆运算,所以运行后dpkg -l | grep amd64,我的列表中有一个i386 pkg amd64-microcode 3.20160316.3 i386,我认为grep模式中的':'重要!(dpkg -l | grep ":amd64"
约拿书

24

上层自动化解决方案很危险,而且并不总是有效(1),因此这里是另一种方法

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

要么

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

(尝试始终使用且仅使用其中一种工具。由于遇到依赖性问题时,适应性会更好,因此我更喜欢。)

好主意也

dpkg --remove-architecture i386

有可能

dpkg --print-foreign-architectures

(1)前面的命令还列出了名称仅包含i386的软件包(尽管它们用于64位体系结构),正则表达式不起作用,并且dpkg显示已删除的软件包,但仍保留配置文件(dpkg -l 显示“ rc”而不是“ ii”作为状态)。


由于awk无论如何都在使用,因此您也可以摆脱grep调用。此外,$()最好不要使用反引号。我只是根据您提供的命令使用此命令摆脱了i386软件包:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
scy

23

我像这样闪电击所有32位软件包:

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

1
如何制作这类命令,我知道apt-get和grep,但是awk'{print $ 1}'是什么,只是想知道。
Sukupa91 2013年

非常棒,现在我能够删除i386架构,但是当我dpkg -l | grep i386检查软件包是否仍然有任何想法时,还对先前的注释+1,并且我猜想它与Shell脚本技术有关
Ismail Marmoush 2014年

没有回应,可能是因为注释不是awk教程的地方。awk的该位仅打印管道输入的每行的第一个字段。Awk的默认字段分隔符为空格“”。
rthbound

通过sudo dpkg --remove-architecture i386
Serge Stroobandt

9

万一有人想知道,还有一种更加理智而优雅的方法可以做到这一点。前面的最后一个答案希望做同样的事情,但是搜索失败,因为除特殊情况外,体系结构实际上不是包名称的一部分。

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

aptitude remove ~i~ri386

如果您尚未在apt-get上使用aptitude,请执行。真的很棒 您可以在此处找到aptitude搜索字词列表。


6

这是另一种风险更低的方法:

apt-get remove "^.*:i386$"

这将仅匹配以结尾的软件包":i386",这是所有i386体系结构Debian软件包的标准命名约定。


为什么要清除过度清除?
Lotus

1
@莲花:我不知道其中的区别。你能解释一下吗?也许我们可以更新此答案以改善它。
kevinarpe

清除还会同时使用配置文件和所有剩余目录iirc
Lotus Lotus

2
@Lotus我使用了清除功能,它在14.04上工作。这仅在删除引号和carret之后对我有用。 sudo apt-get purge .*:i386
Antonios Hadjigeorgalis

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.