Nach einem unsauberen Herunterfahren und einem bunten Fsck sind eine ganze Reihe von Dateien verschwunden. Die Ausgabe von 'rpm -Va' ist mehrere hundert Zeilen lang (meist fehlen Dateien, aber auch einige Prüfsummen und andere Abweichungen). Gibt es eine einfache Möglichkeit, Pakete mit fehlenden und / oder beschädigten Dateien neu zu installieren?
Das fragliche Betriebssystem ist Fedora 22.
yum reinstall $(rpm -qa --qf="%{N}-%{V}\n" | sort)
Antworten:
Aus Gründen der Referenz und Vollständigkeit wäre ein Befehl, der in der Lage wäre, das zu erreichen, was ursprünglich verlangt wurde, so etwas (schnell zusammengewürfelt, aber es funktioniert).
Hier ist eine kurze Erklärung der verschiedenen Teile:
Führt eine vollständige Überprüfung aller derzeit installierten / in der rpm-Datenbank aufgelisteten Pakete durch. Es wird auch stderr zu stdout umleiten, da hier auf meiner Box einige Fehler, die durch das Aktivieren von prelink verursacht werden, als Fehler gemeldet werden, aber wir wollen sie auf stdout haben.
Achtung: Muss als root ausgeführt werden, um alle Dateien, Berechtigungen und Besitzer / Gruppe überprüfen zu können.
Unterdrückt die Anzeige von emtpy Linien und solche der prelink Fehler (Beispiel für einen solchen Fehler:
prelink: /tmp/#prelink#.B14JBi: Recorded 10 dependencies, now seeing -1
)filtert die
rpm -Va
Ausgabe so, dass nur Dateinamen angezeigt werdenfragt nach allen erhaltenen Dateinamen, in denen diese enthalten sind, und gibt den Paketnamen und die Version aus
unterdrückt doppelte Kombinationen von Paketnamen und -version.
Insgesamt erhalten Sie eine Liste der Pakete, deren Überprüfung fehlgeschlagen ist.
rpm -Va
zeigt möglicherweise immer noch einige nicht verwandte Probleme, da auch Abhängigkeiten zwischen Paketen überprüft werden, die möglicherweise durch Hinzufügen unterdrückt werden müssen--nodeps
.quelle
Ich hatte kürzlich ein ähnliches Problem mit fehlenden Dateien unter openSUSE 13.2 und habe es behoben mit:
Die Optionen für rpm und awk sollen in meinem Fall Zeit sparen, da keine Beschädigung aufgetreten ist.
quelle
--nofiles
das Gleiche tun,yum check dependencies
da nur alle installierten RPM-Pakete auf Abhängigkeitsprobleme überprüft werden.--nofiles
Dies würde viel Zeit bei Nicht-SSD-Installationen sparen, aber Sie würden auch die Prüfung auf fehlende Dateien weglassen. ... nur der Vollständigkeit halber. Und bitte denken Sie daran, wenn Sie nach englischen ZeichenfolgenLC_ALL=C