RPM - procedury ratunkowe
Z Fedora Wiki
Spis treści |
Przywracanie domyślnych atrybutów plików
Jeśli w wyniku nieprzemyślanego działania (np. uruchomienie źle napisanego skryptu, niewłaściwe lub przypadkowe wywołanie poleceń chmod, chgrp czy chown itp) zmienione zostaną w systemie uprawnienia do plików (w tym plików i poleceń systemowych) pomocne może okazać się polecenie rpm z odpowiednimi opcjami.
- --setperms przywraca domyślne uprawnienia
- --setugids przyraca domyślnych właścicieli i grupy
Oczywiście wywoływanie polecenia dla każdego z plików osobno zajęłoby zbyt wiele czasu, ale wykorzystując inną opcję rpm -qa możemy z łatwością uruchomić w terminalu, jako root polecenie:
for p in $(rpm -qa); do rpm --setperms $p; done
Powyższe polecenie przywróci wszystkim zainstalowanym w systemie pakietom ich domyślne uprawnienia.
Żeby przywrócić domyślnego właściciela i grupę należy wykonać podobne polecenie:
for p in $(rpm -qa); do rpm --setugids $p; done
Wykonanie obu tych poleceń moze trwać bardzo długo. Czas zależy od ilości zainstalowanych pakietów oraz parametrów komputera.
Żródło: How to: Linux reset the permissions of the installed rpm packages with –setperms option
Naprawianie uszkodzonej bazy RPM
Jeśli przy próbie jakiejkolwiek operacji na pakietach (czy to za pomocą rpm czy za pomocą yum) wyświetli się błąd podobny do tego:
Error Type: <type 'exceptions.TypeError'> Error Value: rpmdb open failed
oznacza to, że uszkodzeniu uległa baza pakietów RPM (rpmdb).
W celu odzyskania spójności bazy oraz możliwości instalowania/usuwania pakietów w systemie należy (z uprawnieniami roota) wykonać kilka czynności.
- przejść do katalogu /var/lib/rpm
cd /var/lib/rpm
- Zmienić nazwę pliku zawierającego informacje o zainstalwanych pakietach:
cp Packages Packages_old
- Usunąć blokady bazy
rm -f __db*
- Odbudować bazę:
rpm --rebuilddb
