Demi referensi dan kelengkapan, satu perintah yang akan dapat mencapai apa yang awalnya diminta akan menjadi seperti ini (dengan cepat mengutak-atik bersama, tetapi berhasil)
rpm -qf $(rpm -Va 2>&1 | grep -vE '^$|prelink:' | sed 's|.* /|/|') | sort -u
Berikut penjelasan singkat dari berbagai bagian:
rpm -Va 2>&1
Akan menjalankan verifikasi lengkap pada semua paket yang saat ini diinstal / terdaftar dalam basis data rpm. Ini juga akan mengarahkan stderr ke stdout, karena di sini di kotak saya beberapa kesalahan yang disebabkan oleh prelink yang diaktifkan dilaporkan sebagai kesalahan tetapi kami menginginkannya di stdout.
Perhatian: Perlu dijalankan sebagai root untuk dapat memeriksa semua file, izin dan pemilik / grup.
grep -vE '^$|prelink:'
Menekan menampilkan garis emtpy dan seperti kesalahan prelink (contoh kesalahan seperti itu:
prelink: /tmp/#prelink#.B14JBi: Recorded 10 dependencies, now seeing -1
)
sed 's|.* /|/|')
akan memfilter rpm -Va
output hanya menampilkan nama file
rpm -qf $()
akan menanyakan semua nama file yang diperoleh yang berisi paket-paket itu, dan menampilkan nama dan versi paket
| sort -u
akan menekan kombinasi nama paket / versi duplikat.
Secara keseluruhan Anda akan menerima daftar paket yang gagal verifikasi.
rpm -Va
mungkin masih menunjukkan beberapa masalah yang tidak terkait, karena juga memeriksa dependensi antar paket, yang mungkin perlu ditekan dengan menambahkan --nodeps
.
yum reinstall $(rpm -qa --qf="%{N}-%{V}\n" | sort)