Есть ли простой способ составить список зависимостей, с которыми будет установлен недавно установленный пакет RPM? yum
?
Пример: если вы это сделаете yum install ruby
затем он также установит некоторые rubygems.
Но когда я удаляю ruby
package Я также хочу избавиться от установленных им зависимостей.
Поэтому моей первой идеей было составить список этих новых пакетов, а затем выполнить rpm -e
на тех, когда я удаляю ruby
.
Вопрос
Как составить такой список в автоматическом режиме?
Или есть более простой способ управлять текстовыми файлами с именами пакетов rpm?
yum
хранит собственную историю, поэтому вы можете узнать, когда пакет был установлен или обновлен, используя его историю.
Например, yum history packages-info ruby
предоставит вам все транзакции, связанные с 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
для отката самой последней транзакции.
Вы можете удалить их с помощью yum autoremove
.