Come disinstallare le dipendenze appena installate per un pacchetto RPM?


16

C'è un modo semplice per fare un elenco delle dipendenze con cui installerà un pacchetto RPM appena installato yum?

Esempio: se lo fai yum install ruby, installerà anche alcuni rubygems.

Ma quando disinstallo il rubypacchetto voglio anche sbarazzarmi delle dipendenze che ha installato.

Quindi la mia prima idea è stata quella di fare un elenco di quei nuovi pacchetti, e poi fare uno rpm -esu quelli quando disinstallo ruby.

Domanda

Come fare tale elenco in modo automatizzato?

Oppure c'è un modo più semplice per gestire i file di testo con i nomi dei pacchetti rpm?


Risposte:


21

yum mantiene la propria cronologia, così puoi scoprire quando un pacchetto è stato installato o aggiornato usando la sua cronologia.

Ad esempio, yum history packages-info rubyti darà tutte le transazioni che coinvolgono ruby, dove la più vecchia è di solito quella in cui è stato installato il pacchetto.

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>

Questo ti darà l'ID della transazione, che puoi quindi cercare e trovare le dipendenze che sono state installate, ad esempio con 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 il pacchetto è stato appena installato e non è stato ancora aggiornato, è possibile eseguire il rollback della transazione con, ad es yum history undo 102. Questo non funzionerà se uno dei pacchetti è stato aggiornato dall'installazione, sebbene corrisponda a nome, versione e versione.

E se hai appena installato i pacchetti, puoi saltare tutto il resto ed eseguire yum history undo lastper ripristinare la transazione più recente.


7

Puoi rimuoverli con yum autoremove.


3
Quando ho provato questo, ha proposto di rimuovere alcuni pacchetti non necessari, insieme ad un gruppo intero che io avevo esplicitamente installato e si desidera. Starei molto attento quando lo uso.
Michael Hampton

yum autoremoverimuoverà tutti i pacchetti richiesti per i pacchetti non più disponibili. Se si desidera mantenerli durante yum autoremove, impostarli prima manualmente.
Albero

"yum autoremove" non funziona in centos 6.6 "Nessun comando simile: autoremove. Utilizzare / usr / bin / yum --help"
c4f4t0r
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.