我刚刚卸载了某些软件包的某些 i386 版本。如果我执行:
dpkg-query --list | grep ":i386"
我看到它们被列出来了。但是,如果我执行:
dpkg-query ---list "*:i386"
我没有看到他们,也没有提供--show
帮助--list
。
我不能使用 dpkg-query 本身在所有包中搜索吗?
答案1
dpkg-query --list
据记录采用“package-name-pattern”,这是包名称上的 shell glob 样式模式。架构(:i386
位)不是包名称的一部分,因此包名称模式无法匹配它。
不过,您可以使用grep-dctrl
(或其别名,例如grep-status
和grep-available
)来执行此操作。dctrl-tools
如果您还没有安装,则需要安装。
grep-status -sPackage --not -FStatus installed --and -FArchitecture i386
可能会做与您正在寻找的类似的事情。它会在状态文件中查找 Status 字段与“installed”不匹配且 Architecture 字段与“i386”匹配的内容。
如果您正在寻找已卸载但未清除的 i386 软件包,您可以尝试:
grep-status -sPackage -FStatus config-files --and -FArchitecture i386
或者(正如您现在可能已经猜到的那样),安装 i386 软件包:
grep-status -sPackage -FStatus installed --and -FArchitecture i386
所有grep-dctrl
变体都有大量选项来准确指定要搜索的内容以及要输出的字段;这grep-dctrl 联机帮助页有详细信息。