有没有一种简单的方法来创build一个新安装的RPM软件包将与yum
安装的依赖项列表?
例如:如果你做yum install ruby
那么它也会安装一些rubygems。
但是当我卸载ruby
软件包时,我也想摆脱它所安装的依赖关系。
所以我的第一个想法是列出这些新软件包,然后在卸载ruby
时对这些软件包执行rpm -e
。
题
如何以自动化的方式制作这样的列表?
还是有一个更简单的方法,然后有必要pipe理与rpm包名称的文本文件?
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 <[email protected]> Reason : user Command Line : install ruby rubygems From repo : updates Installed by : Michael Hampton <error>
这会给你交易ID,然后你可以查找并find已安装的依赖关系,例如用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
来回滚最近的事务。
你可以使用yum autoremove
删除它们。