RPM - procedury ratunkowe

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania

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
Warn.png
UWAGA
Ostatnia operacja może trwać dość długo w zależności od ilości zainstalowanych pakietów oraz parametrów komputera. Nie należy przerywać działania tego polecenia



Osobiste
Przestrzenie nazw

Warianty
Działania
Wiki
Nawigacja
Inne
Narzędzia