Setelah shutdown yang tidak bersih dan fsck yang penuh warna, sejumlah file hilang. Output dari 'rpm -Va' panjangnya beberapa ratus baris (kebanyakan file hilang tetapi juga beberapa checksum dan ketidakcocokan lainnya). Apakah ada cara mudah untuk menginstal ulang paket yang memiliki file yang hilang dan / atau rusak?
OS yang dimaksud adalah Fedora 22.
yum reinstall $(rpm -qa --qf="%{N}-%{V}\n" | sort)
Jawaban:
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)
Berikut penjelasan singkat dari berbagai bagian:
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.
Menekan menampilkan garis emtpy dan seperti kesalahan prelink (contoh kesalahan seperti itu:
prelink: /tmp/#prelink#.B14JBi: Recorded 10 dependencies, now seeing -1
)akan memfilter
rpm -Va
output hanya menampilkan nama fileakan menanyakan semua nama file yang diperoleh yang berisi paket-paket itu, dan menampilkan nama dan versi paket
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
.sumber
Baru-baru ini saya memiliki masalah yang sama dengan file yang hilang pada openSUSE 13.2 dan memperbaikinya dengan:
Opsi untuk rpm dan panggilan ke awk dimaksudkan untuk menghemat waktu dalam kasus saya, karena tidak ada korupsi yang terjadi.
sumber
--nofiles
dan karenanya pada dasarnya melakukan hal yang sama karenayum check dependencies
hanya akan memeriksa semua paket rpm yang diinstal untuk masalah ketergantungan.--nofiles
akan menghemat banyak waktu untuk instalasi non-SSD, tetapi Anda juga akan menghilangkan centang untuk file yang hilang. ... hanya demi kelengkapan. Dan harap diingat, jika Anda menerima string bahasa Inggris, Anda mungkin ingin awalan denganLC_ALL=C
;)