Linux

如何解除安裝 RPM 包新安裝的依賴項?

  • April 15, 2015

有沒有一種簡單的方法可以列出新安裝的 RPM 包將安裝的依賴項列表yum

範例:如果您這樣做yum install ruby,它還將安裝一些 ruby​​gems。

但是當我解除安裝ruby軟體包時,我也想擺脫它安裝的依賴項。

所以我的第一個想法是列出這些新軟體包,然後rpm -e在我解除安裝時對這些軟體包進行處理ruby

問題

如何以自動方式製作這樣的列表?

或者有沒有更簡單的方法來管理帶有 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 <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以回滾最近的事務。

引用自:https://serverfault.com/questions/682982