Polska społeczność Fedora Linux

Poradniki

RPM – procedury ratunkowe

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: http://www.cyberciti.biz/tips/reset-rhel-centos-fedora-package-file-permission.html

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

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.

Napisz komentarz

Polska Społeczność Fedora Linux.
Logo Fedora jest znakiem towarowym należącym do Red Hat Inc. | Polska strona fedora.pl jest administrowana i utrzymywana przez osoby niezależne od Red Hat Inc.
O ile treść nie stanowi inaczej, artykuły na tej stronie są dostępne na licencji Creative Commons Attribution-ShareAlike 4.0 International License. | Kontakt do redakcji: redakcja fedora.pl