Saya telah menginstal beberapa paket rpm pada Fedora 17. Beberapa paket memiliki banyak ketergantungan. Saya telah menghapus beberapa paket tetapi saya lupa menghapus dependensi yang tidak digunakan dengan yum remove.
Bagaimana saya bisa melakukannya sekarang?
yum
manual: linux.die.net/man/8/yum ?Jawaban:
Ini tidak mudah. Bagaimana Anda membedakan antara "file yang diperlukan oleh sesuatu yang telah saya hapus" dari "file yang tidak diperlukan oleh hal lain yang benar-benar saya inginkan"?
Anda dapat menggunakan
package-cleanup
perintah dariyum-utils
paket untuk mendaftar "leaf node" di grafik ketergantungan paket Anda. Ini adalah paket yang dapat dihapus tanpa mempengaruhi hal lain:Ini akan menghasilkan daftar "perpustakaan" di mana tidak ada yang lain bergantung. Dalam kebanyakan kasus, Anda dapat dengan aman menghapus paket-paket ini. Jika Anda menambahkan
--all
ke baris perintah:Anda juga akan mendapatkan paket yang tidak dianggap pustaka, tetapi daftar ini akan sangat lama sehingga mungkin tidak akan berguna.
sumber
Jika Anda menginstal paket dengan
yum install
, katakanlahpdftk
, itu akan menarik banyak dependensi:yum remove pdftk
hanya akan menghapus paket itu dan tidak semua dependensi.Tetapi Anda dapat melihat semua 'transaksi' (instal, hapus dll.):
Dan kemudian Anda dapat membatalkan transaksi itu:
sumber
yum history
. Terima kasih!Mulai dari Fedora 18, Anda cukup menggunakan perintah ini
atau
Anda juga dapat menerapkan perintah autoremove dengan paket tertentu
Yang akan menghapus dependensi yang tidak dibutuhkan dari paket yang diinstal.
autoremove
sangat banyak aliasremove --setopt=clean_requirements_on_remove=1
tetapi karena beberapa alasan, masih tidak berdokumen.sumber
yum remove --setopt=clean_requirements_on_remove=1
bekerja untuk saya di centOSpackage-cleanup --leaves && yum autoremove
libvorbis yang dihapus sehingga aplikasi internet-radio-streaming "Ices" mati - mungkin karena tidak ada dalam repo dan saya harus mengompilasinya.yum autoremove
berfungsi pada CentOS 7.6.Saya mengambil jawaban larsk satu langkah lebih jauh.
Ini mengambil semua dependensi yang dapat dihapus tanpa mempengaruhi hal lain dan kemudian menghapusnya. Lebih baik melalui satu per satu.
"-q" berguna pada beberapa sistem yang mencetak "Menyiapkan yum" jika tidak, menyebabkan perintah ini untuk menghapus yum. Dan bukan itu yang Anda inginkan.
sumber
package-cleanup
output "Menyiapkan yum" pada mesin saya, yang mengakibatkan Yum menghapus sendiri. Saya sekarang mencoba mencari cara untuk mengatasinya.-q
opsi untuk pembersihan paket. Ini juga terjadi pada saya: Dpackage-cleanup -q --leaves | xargs -r -l1 yum -y remove
akan secara diam-diam melewatkan xargs jika output paket-cleanup kosong, berguna untuk skrip otomatis seperti ansible, chef, bonekanya, gelandanganDi Fedoras dengan yang lebih baru
dnf
, Anda dapat menggunakandnf repoquery --unneeded
sebagai penggantipackage-cleanup --leaves
.sumber