![使用 zypper,如何从特定存储库中删除安装的所有软件包?](https://linux22.com/image/4262/%E4%BD%BF%E7%94%A8%20zypper%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BB%8E%E7%89%B9%E5%AE%9A%E5%AD%98%E5%82%A8%E5%BA%93%E4%B8%AD%E5%88%A0%E9%99%A4%E5%AE%89%E8%A3%85%E7%9A%84%E6%89%80%E6%9C%89%E8%BD%AF%E4%BB%B6%E5%8C%85%EF%BC%9F.png)
假设我已经使用添加了一个存储库zypper ar
。然后,我从该存储库安装了多个软件包,但现在我想删除所有这些软件包。
是否有一个命令允许我从该特定存储库中删除我安装的所有软件包?
答案1
我认为没有这样的命令。您可以列出特定存储库中的包:
zypper search --installed-only --repo devel:tools
或所有孤立的软件包(如果您已经删除了该存储库):
zypper packages --orphaned
然后,您可以尝试cut
从输出中打包名称并将其传递给(zypper remove
如果值得的话)。
答案2
zypper search
您可以使用、awk
和的组合xargs
来从存储库中删除所有包。例如:
zypper se --repo openSUSE-Tumbleweed-Debug --installed | awk '/^i(\+|\s)/ {print $3}' | xargs sudo zypper rm
答案3
这条线对我来说效果很好
zypper search --installed-only --repo yourbadrepo|awk {'print $3'}|xargs sudo zypper rm
如果你想在脚本中冒险或使用, -n 选项避免确认(可以破坏 deps)
zypper search --installed-only --repo yourbadrepo|awk {'print $3'}|xargs sudo zypper -n rm