RPM 패키지에 대해 새로 설치된 종속성을 제거하는 방법은 무엇입니까?


16

새로 설치된 RPM 패키지와 함께 설치되는 종속성 목록을 만드는 쉬운 방법이 yum있습니까?

예 : 그렇게하면 yum install ruby루비 젬도 설치됩니다.

그러나 ruby패키지를 제거 할 때 패키지에 설치된 종속성을 제거하고 싶습니다.

그래서 첫 번째 아이디어는 새로운 패키지 목록을 만든 다음 rpm -e제거 할 때 그 패키지 를 사용하는 것 ruby입니다.

질문

자동으로 그러한 목록을 만드는 방법은 무엇입니까?

또는 rpm 패키지 이름으로 텍스트 파일을 관리해야하는 더 쉬운 방법이 있습니까?


답변:


21

yum 자체 히스토리를 유지하므로 히스토리를 사용하여 패키지가 설치되거나 업데이트 된시기를 찾을 수 있습니다.

예를 들어 yum history packages-info 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
나는이 시도 할 때, 내가하는 모든 무리와 함께 몇 가지 불필요한 패키지를 제거 할 것을 제안 했다 명시 적으로 설치합니다. 이것을 사용할 때 매우 조심할 것입니다.
Michael Hampton

yum autoremove더 이상 사용할 수없는 패키지에 필요한 모든 패키지가 제거됩니다. 동안 유지하려면 yum autoremove먼저 수동으로 설치하도록 설정하십시오.
마스트

"yum autoremove"는 centos 6.6에서 작동하지 않습니다. "그런 명령은 없습니다 : autoremove. / usr / bin / yum --help를 사용하십시오"
c4f4t0r
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.