Jak odinstalować nowo zainstalowane zależności dla pakietu RPM?

16

Czy istnieje prosty sposób na sporządzenie listy zależności, z którymi będzie instalowany nowo zainstalowany pakiet RPM yum?

Przykład: jeśli to zrobisz yum install ruby, zainstaluje także niektóre rubygemy.

Ale kiedy odinstalowuję rubypakiet, chcę również pozbyć się zainstalowanych zależności.

Więc moim pierwszym pomysłem było sporządzenie listy tych nowych pakietów, a następnie zrobienie ich rpm -ena tych, gdy odinstalowałem ruby.

Pytanie

Jak zrobić taką listę w sposób zautomatyzowany?

Czy jest łatwiejszy sposób na zarządzanie plikami tekstowymi z nazwami pakietów RPM?

Jasmine Lognnes
źródło

Odpowiedzi:

21

yum zachowuje własną historię, dzięki czemu można dowiedzieć się, kiedy pakiet został zainstalowany lub zaktualizowany przy użyciu jego historii.

Na przykład yum history packages-info rubyda ci wszystkie transakcje z rubinem, przy czym najstarsza jest zwykle ta, w której pakiet został zainstalowany.

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>

Otrzymasz identyfikator transakcji, który możesz następnie wyszukać i znaleźć zależności, które zostały zainstalowane, np yum history info <ID>. Za pomocą .

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

Jeśli pakiet został właśnie zainstalowany i nie został jeszcze zaktualizowany, możesz wycofać transakcję, np yum history undo 102. Nie będzie to działać, jeśli którykolwiek z pakietów został zaktualizowany od czasu instalacji, ponieważ pasuje do nazwy, wersji i wydania.

A jeśli tak naprawdę właśnie zainstalowałeś pakiety, możesz pominąć wszystko inne i uruchomić, yum history undo lastaby cofnąć ostatnią transakcję.

Michael Hampton
źródło
7

Możesz je usunąć za pomocą yum autoremove.

Sven
źródło
3
Kiedy próbowałem, zaproponowałem usunięcie kilku niepotrzebnych pakietów wraz z całą grupą, którą wyraźnie zainstalowałem i chcę. Byłbym bardzo ostrożny podczas korzystania z tego.
Michael Hampton
yum autoremoveusunie wszystkie pakiety, które były wymagane dla już niedostępnych pakietów. Jeśli chcesz je zachować yum autoremove, ustaw je ręcznie jako pierwsze.
Maszt
„yum autorove” nie działa w centos 6.6 "Brak takiego polecenia: autorove. Proszę użyć / usr / bin / yum --help"
c4f4t0r 21.04.15