YaST / zypper 有办法通过移除 pattern 而移除 pattern 下的包吗?

虽说有这么一条命令

zypper rm -t pattern some_pattern

但是这个移除的只是 some_pattern 这个包,而没有一起移除整个 pattern 下相关的软件包.

我看到 zypper 的手册页中有说“暂时不能通过移除 pattern 来移除里面所包含的软件包。。。”,忘了原文了,一下子一找不到在手册的哪一行了(算是 man 的不便捷性吗?)。虽然这里说得已经很清楚了,但我还是想问,真的没办法了吗?

哦,另,YaST 中软件管理中的 pattern 选项卡中关于 pattern 的管理中有这么一项 “All in This List…”,但是,当尝试“All in This List… delete” 时,依赖问题,太复杂了。。是因为依赖问题而不提供这个的解决方案吗?

举个例子说,如果想从一个 桌面环境 迁移到另一个时是怎么做的,安装 Gnome 时提供了两个 pattern:
zypper in -t pattern gnome gnome_basis
, 但想移除的时候怎么处理?上面已经说不能简单的使用
zypper rm -t pattern gnome gnome_basis

man 里面支持搜索,按 / 就可以进行搜索。

根据 man 的说法,确实不能直接 rm pattern,但是应该可以这样迂回来进行删除。

sudo zypper in -D --details -f -t pattern xfce

这样可以找出 pattern 下的软件列表,如果 pattern 下还有 pattern,那按同样的方法找出。然后进行删除。

我当然知道用 / 进行搜索啦,意思是因为记不清原文是什么样了,而 man 里面只支持词的精准匹配?不太熟悉怎么用正则来匹配。。也不知道 man 里面支持怎样。

回到正题,如果按照你说的方法来进行删除的话,“如果 pattern 下还有 pattern, 按照同样的方法即可。。” 如果你尝试一下,你会发现,很有可能你整个系统都被删除了,很可能会发生不可预料的后果!当时我就说是因为依赖问题 libzypp 不提供这项“特性”?