Bagaimana cara menghapus ketergantungan yang baru diinstal untuk paket RPM?

16

Apakah ada cara mudah untuk membuat daftar dependensi yang akan diinstal dengan paket RPM yang baru diinstal yum?

Contoh: Jika Anda melakukannya, yum install rubyitu juga akan menginstal beberapa rubygems.

Tetapi ketika saya uninstall rubypaket saya juga ingin menyingkirkan dependensi yang diinstal.

Jadi ide pertama saya adalah membuat daftar paket-paket baru itu, dan kemudian lakukan rpm -epada mereka ketika saya uninstall ruby.

Pertanyaan

Bagaimana cara membuat daftar seperti itu dengan cara otomatis?

Atau adakah cara yang lebih mudah untuk mengelola file teks dengan nama paket rpm?

Jasmine Lognnes
sumber

Jawaban:

21

yum menyimpan riwayatnya sendiri, sehingga Anda dapat mengetahui kapan paket diinstal atau diperbarui menggunakan riwayatnya.

Misalnya, yum history packages-info rubyakan memberi Anda semua transaksi yang melibatkan ruby, di mana yang tertua biasanya yang di mana paket itu diinstal.

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>

Ini akan memberi Anda ID transaksi, yang kemudian Anda dapat mencari dan menemukan dependensi yang diinstal, misalnya dengan 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

Jika paket baru saja diinstal, dan belum diperbarui, Anda dapat mengembalikan transaksi dengan, misalnya yum history undo 102. Ini tidak akan berfungsi jika salah satu paket telah diperbarui sejak instalasi, karena cocok dengan nama, versi dan rilis.

Dan jika Anda benar - benar baru saja menginstal paket, Anda dapat melewati semua yang lain dan menjalankan yum history undo lastuntuk mengembalikan transaksi terbaru.

Michael Hampton
sumber
7

Anda dapat menghapusnya dengan yum autoremove.

Sven
sumber
3
Ketika saya mencoba ini, ia mengusulkan untuk menghapus beberapa paket yang tidak perlu, bersama dengan sejumlah paket yang telah saya instal dan inginkan secara eksplisit. Saya akan sangat berhati-hati saat menggunakan ini.
Michael Hampton
yum autoremoveakan menghapus semua paket yang diperlukan untuk paket yang tidak lagi tersedia. Jika Anda ingin menyimpannya selama yum autoremove, atur agar diinstal secara manual terlebih dahulu.
Tiang
"yum autoremove" tidak berfungsi di centos 6.6 "Tidak ada perintah seperti itu: autoremove. Silakan gunakan / usr / bin / yum --help"
c4f4t0r