Wyszukiwanie w witrynie

Jak naprawić błąd Yum: obraz dysku bazy danych jest uszkodzony


W tym artykule krótko opiszemy YUM, YumDB, a następnie przyczynę Błądu Yum: obraz dysku bazy danych jest zniekształcony i jak to naprawić błąd.

YUM (Yellowdog Updater, Modified) to domyślne narzędzie wysokiego poziomu do zarządzania pakietami Linuksa w dystrybucjach Linuksa opartych na RPM (RedHat Package Manager), takich jak Red Hat Enterprise Linux (RHEL), CentOS, a także starszych wersjach Fedory Linux, po prostu żeby wymienić tylko kilka.

Działa podobnie jak polecenie apt-get lub stosunkowo nowe polecenie apt; można go używać do instalowania nowych pakietów, usuwania starych pakietów oraz sprawdzania zainstalowanych i/lub dostępnych pakietów. Można go również wykorzystać do aktualizacji systemu (wraz z rozwiązywaniem zależności i przestarzałym przetwarzaniem w zależności od przechowywanych metadanych repozytorium).

Uwaga: w tym przewodniku założono, że sterujesz systemem jako root. W przeciwnym razie użyj polecenia sudo, aby uruchomić wszystkie poniższe polecenia. Co ciekawe, możesz także uruchomić polecenie sudo bez podawania hasła; wiedziałeś o tym, OK, kontynuujmy.

Krótkie zrozumienie YumDB

Począwszy od wersji 3.2.26, yum przechowuje dodatkowe informacje dotyczące zainstalowanych pakietów w lokalizacji poza ogólną bazą danych RPM; w prostej bazie danych w postaci płaskiego pliku o nazwie yumdb (/var/lib/yum/yumdb/) – a nie w prawdziwej bazie danych.

cd /var/lib/yum/yumdb
ls 

Możesz sprawdzić jeden z podkatalogów, aby dowiedzieć się więcej o yumdb w następujący sposób.

cd b
ls

Chociaż informacja ta nie ma większego znaczenia dla procesów yum, jest bardzo użyteczna dla administratorów systemu: jasno opisuje kontekst, w jakim pakiet został zainstalowany w systemie.

Jeśli spróbujesz przejrzeć pliki (from_repo, installed_by, releasever itp.) pokazane na powyższym zrzucie ekranu, prawdopodobnie nic nie zobaczysz w nich ważne.

Aby uzyskać dostęp do zawartych w nich informacji, musisz zainstalować yum-utils, który udostępnia skrypt o nazwie yumdb – a następnie użyj tego skryptu w sposób wyjaśniony poniżej.

yum install yum-utils 

Poniższe polecenie pobierze repo, z którego zainstalowano httpd.

yumdb get from_repo httpd

Aby zdefiniować notatkę dotyczącą pakietów httpd i mariadb, wpisz.

yumdb set note "installed by aaronkilik to setup LAMP" httpd mariadb

Aby wyświetlić wszystkie wartości yumdb dotyczące httpd i mariadb, wpisz.

yumdb info httpd mariadb

Napraw błąd Yum: obraz dysku bazy danych jest zniekształcony

Czasami podczas instalowania pakietu lub aktualizacji systemu przy użyciu YUM może pojawić się błąd: „Obraz dysku bazy danych jest zniekształcony”. Może to wynikać z uszkodzenia yumdb: prawdopodobnie spowodowanego przeszkodą w procesie „yum update” lub instalacji pakietu.

Aby naprawić ten błąd, musisz wyczyścić pamięć podręczną bazy danych, uruchamiając poniższe polecenie.

yum clean dbcache 

Jeśli powyższe polecenie nie zadziała (napraw błąd), spróbuj uruchomić serię poniższych poleceń.

yum clean all			#delete entries in /var/cache/yum/ directory.
yum clean metadata		#clear XML metadeta		
yum clean dbcache		#clear the cached files for database
yum makecache		        #make cache

Na koniec musisz odbudować bazę danych RPM systemu, aby działała.

mv /var/lib/rpm/__db* /tmp
rpm --rebuilddb

Jeśli dobrze wykonałeś powyższe instrukcje, błąd powinien już zostać rozwiązany. Następnie spróbuj zaktualizować system w następujący sposób.

yum update 

Możesz także zapoznać się z tymi ważnymi artykułami dotyczącymi yum i innych menedżerów pakietów dla systemu Linux:

  1. Jak korzystać z „Historii Yum”, aby znaleźć informacje o zainstalowanych lub usuniętych pakietach
  2. 27 Poleceń „DNF” (Fork of Yum) do zarządzania pakietami RPM w systemie Linux
  3. Co to jest APT i Aptitude? i jaka jest prawdziwa różnica między nimi?
  4. Jak używać „apt-fast”, aby przyspieszyć pobieranie pakietów apt-get/apt przy użyciu wielu kopii lustrzanych

Jeśli masz jakieś pytania lub pomysły, którymi możesz się podzielić na ten temat, skorzystaj z sekcji komentarzy poniżej, aby to zrobić.