Co to RPM ?
Nazwa rpm wzięła się pierwotnie od skrótu: Red Hat Package Manager. Jak nazwa wskazuje, był on napisany dla Red Hata, jednak wraz ze wzrostem popularności programu również na innych dystrybucjach, zmieniono pochodzenie skrótu na: RPM Package Manager. Program służy do instalacji bardzo wygodnych pakietów, dostarczających nam oprogramowanie (posiadających rozszerzenie .rpm).
Jak używać rpm ?
A teraz coś, co nas najbardziej interesuje, czyli użytkowanie programu rpm. Instalacja pakietów odbywa się w trybie administratora, używamy do tego komendy:
su
Potem konsola poprosi nas o podanie hasła administratora. Poniżej podam najprzydatniejsze argumenty jakich można używać z programem rpm:
Instalowanie, aktualizacja oraz usuwanie
Aby zainstalować jakiś pakiet, używamy komendy:
rpm -i <nazwa pakietu>
Aby dodatkowo pojawiły nam się informacje o pakiecie oraz pasek postępu instalacji, dołączamy kolejne dwa argumenty:
rpm -ivh <nazwa pakietu>
Aby zaktualizować lub zainstalować pakiet używamy:
rpm -U
Podobnie jak w przypadku instalacji, możemy wzbogacić proces instalacji o pasek postępu oraz dodatkowe informacje dodajemy tylko dwa argumenty:
rpm -Uvh
Aby usunąć jakiś pakiet, używamy komendy:
rpm -e <nazwa pakietu>
Aby wymusić instalację pakietu pomimo ostrzeżeń (czasem się to przydaje) używamy parametru —force:
rpm -i <nazwa pakietu> --force
Aby wymusić usunięcie pakietu pomimo zależności (również czasami się przydaje) używamy parametru —nodeps:
rpm -e <nazwa pakietu> --nodeps
Uzyskiwanie informacji o zainstalowanych pakietach
Aby sprawdzić wersję pakietu (a przy okazji sprawdzić, czy jest zainstalowany), używamy polecenia:
rpm -q <nazwa pakietu>
Dokumentację programu można znaleźć za pomocą rpm:
rpm -qd <nazwa pakietu>
Czasami wędrując po systemie, znajdujemy jakiś dziwny plik. rpm może nam powiedzieć, do jakiego pakietu on należy:
rpm -qf <scieżka do pliku>
Istnieje też możliwosć wyświetlenia wszystkich plików danego pakietu:
rpm -ql <nazwa pakietu>
Istnieje jeszcze inne polecenie dla programu rpm, przydatne czasami, mianowicie polecenie:
rpm -qa
Polecenie to wyświetla wszystkie zainstalowane pakiety. W połączeniu z programami typu grep można sprawdzić na przykład ile pakietów w systemie ma nazwę zaczynająca się na literę "a":
rpm -qa | grep ^a
Przy odrobinie umiejętności i wiedzy, można łatwo znaleźć za pomocą rpm każdy plik będący w jakimś pakiecie - na tym przykładzie niech to będzie startkde:
rpm -ql $(rpm -qa | grep kde.*3) | grep startkde
Inne możliwości
Kolejnym przydatnym poleceniem jest odbudowanie bazy pakietów rpm. Przydaje się, gdy coś się posypie. Wówczas używamy polecenia:
rpm --rebuilddb
Komendę tę warto również wydać, jeśli pakiety instalują się wyraźnie wolniej niż wcześniej - wynika to z pofragmentowania bazy z informacjami o zainstalowanych pakietach.
Dodatkowo rpm potrafi ściągnąc pakiet z internetu za pomocą wbudowanego klienta HTTP/FTP. Wystarczy podać link:
rpm -Uvh http://www.example.org/pakiet-rpm-1.0-1.rpm
Zaawansowane użycie
Oczywiście za pomocą rpm można też odpytywać bazę danych zawierającą informacje o zainstalowanych pakietach:
rpm -q --qf "%{BUILDHOST}\n" kadu
Taka komenda wyświetli informacje o nazwie komputera, na którym zbudowano pakiet.
rpm -qa --qf "%{LICENSE}\n" | sort | uniq -c
W ten sposób można sprawdzić, ile i na jakich licencjach mamy pakiety. Oczywiście wynik mógłby być posortowany według ilości pakietów z daną licencją, ale… zapraszam do podręcznika sytemowego poświęconego poleceniu sort.
Źródło: openSUSE polish wiki