我的环境:CentOS 7.0
- 通过以下方式保存 rpm 列表:
rpm -qa > before.list
- 尝试 libreoffice-calc。(112M 字节)
yum install -y libreoffice-calc
- 觉得没用,想删掉,结果发现
yum remove libreoffice-calc
只能删掉25M字节。
有没有智能的方法来删除通过依赖关系安装的其他包?(通过 before.list?)
答案1
也许有一天 yum 会像最新的 Debian 软件包实用程序一样智能,据说它在安装软件包时会记录所有依赖项,这样当您删除软件包时,为该软件包安装的所有依赖项也会被删除。在这种版本的 yum 面世之前,我们必须自己做这项工作,以下是一些想法。
一个想法是运行rpm -qa > after.list
然后diff -BurN before.list after.list
。但是,如果从那时起已经有许多软件包更新,则可能很难确定要删除的软件包。
另一个想法是使用--last
rpm 命令的选项按安装包的日期和时间列出包:
rpm -qa --last > datetime_ordered.list
与 libreoffice-calc 在同一日期和时间安装的软件包很可能是 libreoffice-calc 所需的依赖项以及您想要删除的软件包,yum remove
因为 yum 会告诉您是否有比 libreoffice-calc 更多的软件包需要这些软件包。
答案2
大多数情况下,您可以使用 来实现这一点yum history
。
从man yum
:
history
The history command allows the user to view what has happened in past transactions (assuming the history_record config. option is set).
You can use info/list/packages-list/packages-info/summary to view what happened, undo/redo/rollback to act on that information and new to start a new history file.
它有时会卡在更新上,无法找到旧的包来恢复情况。
对于简单的安装我发现它非常方便。
答案3
但仅可通过插件安装:yum-plugin-no-leaves
添加
--节点数
或者
--no-leaves
也可以