Como desinstalar dependências recém-instaladas para um pacote RPM?

16

Existe uma maneira fácil de fazer uma lista das dependências com as quais um pacote RPM recém-instalado instalará yum?

Exemplo: Se você o fizer yum install ruby, também instalará alguns rubygems.

Mas quando eu desinstalo o rubypacote, também quero me livrar das dependências instaladas.

Então, minha primeira idéia foi fazer uma lista desses novos pacotes e fazer um rpm -equando eu desinstalar ruby.

Questão

Como fazer essa lista de forma automatizada?

Ou existe uma maneira mais fácil de gerenciar arquivos de texto com nomes de pacotes rpm?

Jasmine Lognnes
fonte

Respostas:

21

yum mantém seu próprio histórico, para que você possa descobrir quando um pacote foi instalado ou atualizado usando seu histórico.

Por exemplo, yum history packages-info rubyvocê fornecerá todas as transações envolvendo ruby, onde a mais antiga geralmente é aquela em que o pacote foi instalado.

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>

Isso fornecerá o ID da transação, que você poderá procurar e encontrar as dependências que foram instaladas, por exemplo, com 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

Se o pacote acabou de ser instalado e ainda não foi atualizado, você pode reverter a transação com, por exemplo yum history undo 102. Isso não funcionará se algum dos pacotes tiver sido atualizado desde a instalação, porém, pois corresponde ao nome, versão e versão.

E se você realmente acabou de instalar os pacotes, poderá pular todo o resto e executar yum history undo lastpara reverter a transação mais recente.

Michael Hampton
fonte
7

Você pode removê-los com yum autoremove.

Sven
fonte
3
Quando tentei, ele propôs a remoção de alguns pacotes desnecessários, juntamente com um monte que eu havia instalado e desejado explicitamente. Eu teria muito cuidado ao usar isso.
Michael Hampton
yum autoremoveremoverá todos os pacotes necessários para os pacotes não mais disponíveis. Se você deseja mantê-los durante yum autoremove, defina-os como instalados manualmente primeiro.
mastro
"yum autoremove" não funciona no CentOS 6.6 "No such comando:. autoremove Por favor use / usr / bin / yum help"
c4f4t0r