Як видалити щойно встановлені залежності для пакету 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>

Це дасть вам ідентифікатор транзакції, який ви зможете знайти та знайти встановлені залежності, наприклад, з 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
Коли я спробував це, він запропонував , щоб видалити кілька непотрібних пакетів, поряд з цілим букетом , що я був явно встановлений і хочу. Я був би дуже обережний при використанні цього.
Майкл Хемптон

yum autoremoveвидалить усі пакунки, необхідні для більше недоступних пакетів. Якщо ви хочете зберегти їх протягом yum autoremove, спочатку встановіть їх на встановлення вручну.
щогли

"yum autoremove" не працює в центрі 6.6 "Немає такої команди: autoremove. Будь-ласка, використовуйте / usr / bin / yum --help"
c4f4t0r
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.