Komenda rpm

Z openSUSE wiki

Nazwa rpm wzięła się pierwotnie od skrótu: Red Hat Package Manager. Jak nazwa wskazuje, był to menedżer pakietów on napisany dla Red Hata, jednak wraz ze wzrostem popularności, pojawił się również na innych dystrybucjach, stąd zmieniono rozwinięcie skrótu na: RPM Package Manager. Program służy do instalacji bardzo wygodnych pakietów, dostarczających oprogramowanie.

Spis treści


Jak używać rpm ?

Komenda rpm nie ma graficznej wersji, działa w konsoli. Wszystkie operację modyfikujące bazę danych o pakietach, należy wykonywać w trybie administratora.

Instalowanie, aktualizacja oraz usuwanie

Wskazówka.png Wskazówka: RPM nie jezt zalecanym menedżerem pakietów do aktualizacji systemu czy instalacji nowego oprogramowania, z powodu małej wygody obsługi.

Aby zainstalować jakiś pakiet, używa się komendy:

rpm -i <nazwa pakietu>

Aby dodatkowo pojawiły nsię informacje o pakiecie oraz pasek postępu instalacji, należy dołączyć kolejne dwa argumenty:

rpm -ivh  <nazwa pakietu>

Aby zaktualizować lub zainstalować pakiet używa się:

rpm -U

Podobnie jak w przypadku instalacji, można wzbogacić proces instalacji o pasek postępu oraz dodatkowe informacje, dodająć tylko dwa argumenty:

rpm -Uvh
Uwaga.png Uwaga: Zaleca się używania -Uvh zamiast -ivh, ponieważ w szczególnych warunkach drugie polecenie może doprowadzić do zdublowania pakietu o takiej samej nazwie w bazie.

Aby usunąć jakiś pakiet, używa się komendy:

rpm -e <nazwa pakietu>

Aby wymusić instalację pakietu pomimo ostrzeżeń (czasem się to przydaje) używa się parametru --force:

rpm -i <nazwa pakietu> --force

Aby wymusić usunięcie pakietu pomimo zależności (również czasami się przydaje) używa się parametru --nodeps:

rpm -e <nazwa pakietu> --nodeps

Uzyskiwanie informacji o zainstalowanych pakietach

Aby sprawdzić wersję pakietu (a przy okazji sprawdzić, czy jest zainstalowany), używa się polecenia:

rpm -q <nazwa pakietu>

Dokumentację programu można znaleźć za pomocą rpm:

rpm -qd <nazwa pakietu>

Czasami wędrując po systemie, można natknąć się na jakiś dziwny plik. Jeśli wchodzi w skład któregoś z zainstalowanych pakietów, to rpm może powiedzieć, z którego pakietu pochodzi:

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żywa się 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ć, na ilu i na jakich licencjach, są zainstalowane w systemie pakiety. Oczywiście wynik mógłby być posortowany według ilości pakietów z daną licencją, ale... więcej informacji o tym zagadnieniu znajduje się w artykule programowanie w Bash.