Referans ve bütünlük uğruna, başlangıçta istenen şeyi başarabilecek bir komut böyle bir şey olacaktır (hızlı bir şekilde birlikte hareket ediyor, ama çalışıyor)
rpm -qf $(rpm -Va 2>&1 | grep -vE '^$|prelink:' | sed 's|.* /|/|') | sort -u
İşte çeşitli parçaların kısa bir açıklaması:
rpm -Va 2>&1
Şu anda kurulu / rpm veritabanında listelenen tüm paketler üzerinde tam bir doğrulama çalışacaktır. Ayrıca stderr'ı stdout'a yönlendirecektir, burada kutumda, ön bağlantının etkinleştirilmesinden kaynaklanan bazı hatalar hata olarak rapor edilir, ancak stdout'ta olmasını isteriz.
Dikkat: Tüm dosyaları, izinleri ve sahip / grubu kontrol edebilmek için root olarak çalıştırılması gerekir.
grep -vE '^$|prelink:'
bastırır Emtpy hatları ve prelink hataları gibi göstergesine (örneğin, bir hata, örneğin:
prelink: /tmp/#prelink#.B14JBi: Recorded 10 dependencies, now seeing -1
)
sed 's|.* /|/|')
rpm -Va
çıktıyı yalnızca dosya adlarını gösterecek şekilde filtreleyecek
rpm -qf $()
paketin içinde bulunduğu tüm elde edilen dosya adlarını sorgular ve paket adını ve sürümünü çıkarır
| sort -u
yinelenen paket adı / sürüm kombinasyonlarını bastıracaktır.
Tamamen, doğrulamada başarısız olan paketlerin bir listesini alacaksınız.
rpm -Va
paketler arasındaki bağımlılıkları da ekleyerek bastırılması gereken bağımlılıkları da kontrol ettiği için ilgisiz bazı sorunlar göstermeye devam edebilir --nodeps
.
yum reinstall $(rpm -qa --qf="%{N}-%{V}\n" | sort)