yum 仅删除单个 rpm 文件,而不是与其相关的所有软件包

yum 仅删除单个 rpm 文件,而不是与其相关的所有软件包

我的环境:CentOS 7.0

  1. 通过以下方式保存 rpm 列表:rpm -qa > before.list
  2. 尝试 libreoffice-calc。(112M 字节)yum install -y libreoffice-calc
  3. 觉得没用,想删掉,结果发现yum remove libreoffice-calc只能删掉25M字节。

有没有智能的方法来删除通过依赖关系安装的其他包?(通过 before.list?)

答案1

也许有一天 yum 会像最新的 Debian 软件包实用程序一样智能,据说它在安装软件包时会记录所有依赖项,这样当您删除软件包时,为该软件包安装的所有依赖项也会被删除。在这种版本的 yum 面世之前,我们必须自己做这项工作,以下是一些想法。

一个想法是运行rpm -qa > after.list然后diff -BurN before.list after.list。但是,如果从那时起已经有许多软件包更新,则可能很难确定要删除的软件包。

另一个想法是使用--lastrpm 命令的选项按安装包的日期和时间列出包:

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
也可以

相关内容