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?


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.


7

Você pode removê-los com yum autoremove.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.