如何为RPM软件包卸载新安装的依赖项?


16

有没有简单的方法来列出新安装的RPM软件包将与之安装的依赖项列表yum

示例:如果这样做,yum install ruby它还将安装一些rubygems。

但是,当我卸载ruby软件包时,我也想摆脱它所安装的依赖项。

所以我的第一个想法是列出这些新软件包,然后rpm -e在卸载时对它们进行处理ruby

如何以自动方式制作此类清单?

还是有一种更简单的方法来管理带有rpm包名称的文本文件?


Answers:


21

yum 保留自己的历史记录,因此您可以使用其历史记录来确定何时安装或更新软件包。

例如,yum history packages-info ruby将为您提供所有涉及ruby的交易,其中最古老的交易通常是安装软件包的交易。

Transaction ID : 102
Begin time     : Thu Apr  3 17:15:17 2014
Package        : ruby-2.0.0.353-16.fc20.x86_64
State          : Install
Size           : 64,734
Build host     : buildvm-17.phx2.fedoraproject.org
Build time     : Thu Nov 28 06:01:20 2013
Packager       : Fedora Project
Vendor         : Fedora Project
License        : (Ruby or BSD) and Public Domain
URL            : http://ruby-lang.org/
Source RPM     : ruby-2.0.0.353-16.fc20.src.rpm
Commit Time    : Mon Nov 25 07:00:00 2013
Committer      : V?t Ondruch <vondruch@redhat.com>
Reason         : user
Command Line   : install ruby rubygems
From repo      : updates
Installed by   : Michael Hampton <error>

这将为您提供事务ID,然后您可以查找它并找到已安装的依赖项,例如使用yum history info <ID>

Transaction ID : 102
Begin time     : Thu Apr  3 17:15:17 2014
Begin rpmdb    : 2336:55d492c6f5d091f328529861bdf95111264337f6
End time       :            17:15:20 2014 (3 seconds)
End rpmdb      : 2346:ccca040d610665c49a1ff6a11f787f8d5aa6790d
User           : Michael Hampton <error>
Return-Code    : Success
Command Line   : install ruby rubygems
Transaction performed with:
    Updated       rpm-4.11.2-2.fc20.x86_64                @updates/20
2 packages excluded due to repository priority protections
    Updated       yum-3.4.3-137.fc20.noarch               ?
    Updated       yum-metadata-parser-1.1.4-9.fc20.x86_64 @fedora/20
Packages Altered:
    Install     ruby-2.0.0.353-16.fc20.x86_64           @updates/20
    Dep-Install ruby-irb-2.0.0.353-16.fc20.noarch       @updates/20
    Dep-Install ruby-libs-2.0.0.353-16.fc20.x86_64      @updates/20
    Dep-Install rubygem-bigdecimal-1.2.0-16.fc20.x86_64 @updates/20
    Dep-Install rubygem-io-console-0.4.2-16.fc20.x86_64 @updates/20
    Dep-Install rubygem-json-1.7.7-101.fc20.x86_64      @fedora/20
    Dep-Install rubygem-psych-2.0.0-16.fc20.x86_64      @updates/20
    Dep-Install rubygem-rdoc-4.0.1-2.fc20.noarch        @fedora/20
    Install     rubygems-2.1.11-115.fc20.noarch         @updates/20
    Dep-Install rubypick-1.1.1-1.fc20.noarch            @updates/20

如果该软件包是刚刚安装的,但尚未更新,则可以使用来回滚事务yum history undo 102。如果自安装以来已更新了任何软件包,则该方法将不起作用,因为它与名称,版本和发行版相匹配。

而且,如果您确实只是安装了软件包,则可以跳过所有其他内容并运行yum history undo last以回滚最近的事务。


7

您可以使用删除它们yum autoremove


3
当我尝试这样做,它建议取消一些不必要的包装,用了一大堆,我沿着已经显式安装,并希望。使用此工具时,我会非常小心。
迈克尔·汉普顿

yum autoremove将删除不再可用的软件包所需的所有软件包。如果要将它们保留在yum autoremove,请先将它们设置为手动安装。
2015年

“ yum autoremove”在centos 6.6中不起作用“没有这样的命令:autoremove。请使用/ usr / bin / yum --help”
c4f4t0r 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.