Hogyan lehet újraépíteni a sérült RPM-adatbázist a CentOS-ben
Az RPM adatbázis a /var/lib/rpm/ könyvtárban található fájlokból áll a CentOS és más vállalati Linux disztribúciók, például a >RHEL, openSUSE, Oracle Linux és még sok más.
Ha az RPM adatbázis sérült, az RPM nem fog megfelelően működni, így a frissítések nem alkalmazhatók a rendszeren, hibákat tapasztal a csomagok YUM csomagkezelőn keresztüli frissítése közben. A legrosszabb forgatókönyv az, ha nem tud sikeresen futtatni egyetlen rpm és yum parancsot sem.
Olvassa el még: 20 gyakorlati példa az RPM parancsra Linuxban
Számos tényező vezethet az RPM-adatbázis megsérüléséhez, például a korábbi tranzakciók befejezetlensége, bizonyos harmadik féltől származó szoftverek telepítése, bizonyos csomagok eltávolítása és még sok más.
Ebben a cikkben bemutatjuk, hogyan lehet újraépíteni egy sérült RPM-adatbázist; így helyreállíthatja az RPM-adatbázis sérülését a CentOS-ben. Ehhez root felhasználói jogosultságokra van szükség, ellenkező esetben használja a sudo parancsot a jogosultságok megszerzéséhez.
A sérült RPM-adatbázis újraépítése a CentOS-ben
Először is készítsen biztonsági másolatot jelenlegi RPM-adatbázisáról, mielőtt folytatná (a jövőben szüksége lehet rá), a következő parancsok használatával.
mkdir /backups/
tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz /var/lib/rpm
Ezután ellenőrizze a főcsomag metaadatfájljának /var/lib/rpm/Packages integritását; ez az a fájl, amelyet újra kell építeni, de először távolítsa el a /var/lib/rpm/__db* fájlokat, hogy megelőzze az elavult zárolásokat a következő parancsokkal.
rm -f /var/lib/rpm/__db*
/usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
Abban az esetben, ha a fenti művelet sikertelen, vagyis továbbra is hibákat tapasztal, akkor ki kell mentenie és betöltenie kell egy új adatbázist. Az alábbiak szerint ellenőrizze a frissen betöltött csomagok fájl integritását is.
cd /var/lib/rpm/
mv Packages Packages.back
/usr/lib/rpm/rpmdb_dump Packages.back | /usr/lib/rpm/rpmdb_load Packages
/usr/lib/rpm/rpmdb_verify Packages
Most az adatbázis fejléceinek ellenőrzéséhez kérdezze le az összes telepített csomagot a -q
és -a
jelzők használatával, és próbálja meg figyelmesen megfigyelni a címre küldött hibákat. stderrort.
rpm -qa >/dev/null #output is discarded to enable printing of errors only
Végül, de nem utolsósorban építse újra az RPM-adatbázist a következő paranccsal, a -vv
opció lehetővé teszi sok hibakeresési információ megjelenítését.
rpm -vv --rebuilddb
Használja a dcrpm eszközt az RPM-adatbázis észleléséhez és javításához
Felfedeztük a dcrpm (rpm észlelése és kijavítása) parancssori eszközt is, amely az RPM-adatbázis sérülésével kapcsolatos, jól ismert problémák azonosítására és kijavítására szolgál. Ez egy egyszerű és könnyen használható eszköz, amely opció nélkül futtatható. A hatékony és megbízható használat érdekében rendszeresen futtassa a cron segítségével.
Telepítheti a forrásból; töltse le a forrásfát, és telepítse a setup.py segítségével (amelynek meg kell ragadnia a psutil függőséget a pypi-től is), az ábra szerint.
git clone https://github.com/facebookincubator/dcrpm.git
cd dcrpm
python setup.py install
A dcrpm telepítése után futtassa az ábrán látható módon.
dcrpm
Végül próbálja meg újra futtatni a sikertelen rpm vagy yum parancsot, hogy ellenőrizze, minden jól működik-e.
dcrpm Github adattár: https://github.com/facebookincubator/dcrpm
További információt az RPM adatbázis-helyreállítási oldalon talál.
Ez minden! Ebben a cikkben elmagyaráztuk, hogyan lehet újraépíteni egy sérült RPM-adatbázist a CentOS rendszerben. Ha kérdéseit szeretné feltenni, vagy megoszthatja gondolatait ezzel az útmutatóval kapcsolatban, használja az alábbi visszajelzési űrlapot.