Answers:
如果它们不妨碍您,我将把它们留在原处。
如果您坚持要删除,请使用dpkg -l | grep i386
创建一个i386软件包列表。您可以后删除这些细心核对喜欢的东西sudo apt-get purge <package-name>
。
apt-get purge <package-name>
应该仍然可以。
dpkg -l | grep amd64
,我的列表中有一个i386 pkg amd64-microcode 3.20160316.3 i386
,我认为grep模式中的':'重要!(dpkg -l | grep ":amd64"
)
上层自动化解决方案很危险,而且并不总是有效(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 }')
我像这样闪电击所有32位软件包:
sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`
dpkg -l | grep i386
检查软件包是否仍然有任何想法时,还对先前的注释+1,并且我猜想它与Shell脚本技术有关
sudo dpkg --remove-architecture i386
这是另一种风险更低的方法:
apt-get remove "^.*:i386$"
这将仅匹配以结尾的软件包":i386"
,这是所有i386
体系结构Debian软件包的标准命名约定。
sudo apt-get purge .*:i386
在Debian的multiarch指南中提到此命令:apt-get purge ".*:<arch>"
,这看起来是这样的i386
:
apt-get purge ".*:i386"
然后可以从dpkg中删除体系结构:
dpkg --remove-architecture i386