Jak odbudować skorumpowaną bazę danych RPM w Centos

Jak odbudować skorumpowaną bazę danych RPM w Centos

RPM baza danych składa się z plików w ramach /var/lib/rpm/ katalog w Centos oraz inne dystrybucje Linux Enterprise, takie jak Rhel, OpenSuse, Oracle Linux i więcej.

Jeśli RPM Baza danych jest uszkodzona, RPM nie będzie działać poprawnie, dlatego aktualizacje nie mogą być stosowane do twojego systemu, napotykasz błędy, aktualizując pakiety w systemie za pośrednictwem Yum Pack Manager. Najgorszym scenariuszem jest nie może uruchomić żadnego RPM i mniam Polecenia pomyślnie.

Przeczytaj także: 20 praktycznych przykładów polecenia RPM w Linux

Istnieje wiele czynników, które mogą prowadzić do uszkodzenia bazy danych RPM, takich jak niekompletne poprzednie transakcje, instalacja niektórych oprogramowania stron trzecich, usuwanie określonych pakietów i wiele innych.

W tym artykule pokażemy, jak odbudować skorumpowaną bazę danych RPM; W ten sposób możesz wyzdrowieć z korupcji bazy danych RPM w centro. Wymaga to uprawnień użytkownika root, w przeciwnym razie użyj polecenia sudo, aby uzyskać te uprawnienia.

Przebuduj uszkodzoną bazę danych RPM w centroosach

Najpierw zacznij od kopii zapasowej bieżącej bazy danych RPM przed kontynuowaniem (możesz jej potrzebować w przyszłości), używając następujących poleceń.

# mkdir /backups / # tar -zcvf /backups /rpmdb -$ (data +"%d%m%y").smoła.GZ/var/lib/rpm 
Baza danych kopii zapasowej RPM

Następnie sprawdź integralność pliku metadanych pakietu głównego /var/lib/rpm/pakiety; To jest plik, który wymaga odbudowy, ale najpierw usuń /var/lib/rpm/__ db* Pliki, aby zapobiec przestarzałym blokadom za pomocą następujących poleceń.

# rm -f/var/lib/rpm/__ db* #/usr/lib/rpm/rpmdb_verify/var/lib/rpm/pakiety 
Sprawdź bazę danych RPM

W przypadku awarii powyższej operacji, co oznacza, że ​​nadal napotykasz błędy, powinieneś zrzucić i załadować nową bazę danych. Sprawdź także integralność pliku Pakiet świeżo załadowanych w następujący sposób.

# CD/var/lib/rpm/ # Pakiety Pakiety.Wstecz #/usr/lib/rpm/rpmdb_dump pakietów.Powrót | /usr/lib/rpm/rpmdb_load pakiety #/usr/lib/rpm/rpmdb_verify pakiety 
Zrzucaj i załaduj bazę danych RPM

Teraz, aby sprawdzić nagłówki bazy danych, zapytaj wszystkie zainstalowane pakiety za pomocą -Q I -A flagi i staraj się uważnie obserwować wszelkie błędy wysyłane do Stderror.

# rpm -qa>/dev/null #output jest odrzucany, aby umożliwić tylko drukowanie błędów 

Wreszcie odbuduj bazę danych RPM za pomocą następującego polecenia, -vv Opcja pozwala na wyświetlanie wielu informacji o debugowaniu.

# rpm -vv --rebuilddb 
Przebuduj bazę danych RPM

Użyj narzędzia DCRPM, aby wykryć i poprawić bazę danych RPM

Odkryliśmy również DCRPM (wykryć i poprawić RPM) Narzędzie wiersza poleceń używane do identyfikacji i poprawienia dobrze znanych problemów związanych z uszkodzeniem bazy danych RPM. Jest to proste i łatwe w użyciu narzędzie, które można uruchomić bez opcji. Aby uzyskać skuteczne i niezawodne użycie, powinieneś go regularnie uruchamiać za pośrednictwem Cron.

Możesz zainstalować go ze źródła; Pobierz drzewo źródłowe i zainstaluj je za pomocą organizować coś.py (który powinien złapać Psutil zależność od PYPI także), jak pokazano.

# git klon https: // github.com/Facebook Incubator/DCRPM.Git # cd dcrpm # Python konfiguracja.instalacja PY 

Po zainstalowaniu DCRPM, Uruchom go tak, jak pokazano.

# dcrpm 

Na koniec spróbuj ponownie uruchomić nieudane polecenie prędkości obrotowe lub Yum, aby sprawdzić, czy wszystko działa dobrze.

DCRPM GITHUB Repozytorium: https: // github.com/Facebook Incubator/DCRPM
Więcej informacji można znaleźć na stronie odzyskiwania bazy danych RPM.

To wszystko! W tym artykule wyjaśniliśmy, jak odbudować skorumpowaną bazę danych RPM w Centos. Aby zadawać pytania lub podzielić się swoimi przemyśleniami na temat tego przewodnika, użyj poniższego formularza opinii.