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