Wprowadzenie
RPM to jeden z najpopularniejszych systemów pakietów dostępnych w Linuksie (pozostałe to TGZ z Slackware oraz deb z Debiana). Oprócz wersji binarnej lub źródłowej programu każdy pakiet zawiera informację o wersji oraz wymaganych programach do jego działania. Sam program rpm jest raczej dość prymitywny i dlatego powstało kilka nakładek mających ułatwić pracę z nim, zostały one omówione w innej lekcji.
Instalacja pakietów binarnych
Programy instalujemy przy pomocy parametru -i programu rpm. Wygodnie jest dodać jeszcze dwa parametry: -h i -v. Pierwszy umożliwia zobaczenie graficznego paska postępu instalacji, drugi powoduje iż program staje się bardziej gadatliwy.
Przykład: zainstalujmy pakiet mc.
rpm -ihv mc-4.2.12.rpm
Program deinstalujemy korzystając z parametru -e. Podobnie tutaj wygodnie jest użyć paramtery -h i -v.
Przykład: odinstalujmy pakiet mc.
rpm -ehv mc-4.2.12.rpm
Pakiety możemy także uaktualniać. Przydatne są tu dwa parametry -U (powodujący iż jeżeli pakiet nie jest zainstalowany to rpm go instaluje) albo -F (w tym wypadku następuje tylko uaktualnienie). Także tutaj przydatne okazują się parametry -h i -v.
Przykład: uaktualnijmy pakiet mc.
rpm -Fhv mc-4.2.12.rpm
rpm -Uhv mc-4.2.12.rpm
Instalacja pakietów źródłowych
Czasem lepiej jest samodzielnie skompilować program. Przydatne to jest jeżeli chcemy lepiej wykorzystać możliwości naszego komputera i programu kompilując go konkretnie pod nasz procesor lub zmienić nieznacznie parametry domyślnej konfiguracji.
Pakiet ten ściągamy a następnie wykonujemy jednocześnie kompilacje i instalacje pakietu. Robimy to poleceniem rpm z opcją rebuild:
rpm --rebuild packet.src.rpm
Uwaga: musimy mieć zainstalowane wymagane kompilatory oraz biblioteki i pliki nagłówkowe. Niezbędny jest także pakiet rpm-devel.
Możemy jednak zainstalować taki pakiet (pojawi się nam wtedy w systemie w odpowiednich podkatalogach katalogu /usr/src/RPM jego zawartość) w celu samodzielnego stworzenia na jego podstawie pakietu binarnego, który później zainstalujemy. Możemy to wykonać w celu zmiany docelowej architektury, czy wykorzystania jakieś opcji parametrów kompilacji. Tak więc pakiet najpierw instalujemy poleceniem rpm -i nazwa_pakietu.src.rpm a następnie przechodzimy do katalou /usr/src/RPM/SPEC w którym znajduje się specjalny plik odpowiadający za procedurę stworzenia pakietu. Gdy w nim już jesteśmy wydajemy polecenie rpm -bb nazwa_pliku.spec, która spowoduje rozpoczęcie procedury kompilacji a następnie budowania pakietu. Na koniec w odpowiednim podkatalogu katalogu /usr/src/RPM/RPMS znajdziemy nasz nowy pakiet (podkatalog zależy od docelowej architektury).
Przykład:
[root@localhost rpm_src]# rpm -i syslog-ng-1.4.17-3mdk.src.rpm
[root@localhost rpm_src]# cd /usr/src/RPM/SPECS/
[root@localhost SPECS]# rpm -ba –target i686 syslog-ng.spec
Budowanie dla platform: i686
Budowanie dla i686
…
[root@localhost i686]# cd /usr/src/RPM/RPMS/i686/
[root@localhost i686]# rpm -i syslog-ng-1.4.17-3mdk.i686.rpm
W przykładzie wykorzystaliśmy możliwość zbudowania pakietu docelowego na platformę i686, przez co powinniśmy otrzymać pewien zysk optymalizacyjny, gdy wykorzystujemy nowsze komputery .
Tryb zapytań
Rpm posiada także tryb zapytań. Pozwala nam to sprawdzić takie rzeczy jak: czy pakiet jest zainstalowany, jakie pliki wchodzą w jego skład, do jakiego pakietu należy dany plik czy od momentu instalacji dany pakiet się zmienił.
Przejdzmy jednak do konkretów. Krótką informację o pakiecie uzyskamy wydając polecenie rpm -i nazwa_pakietu
Przykład:
[ziutus@localhost ziutus]$ rpm -qi mc-4.5.55 Name : mc Relocations: (not relocateable) Version : 4.5.55 Vendor: MandrakeSoft Release : 7mdk Build Date: sob 23 lut 2002 03:46:41 CET Install date: czw 15 sie 2002 10:09:30 CEST Build Host: bi.mandrakesoft.com Group : File tools Source RPM: mc-4.5.55-7mdk.src.rpm Size : 4403455 License: GPL Packager : Mandrake Linux Team
Sprawdzenie jakie pakiety mają w nazwie litery mc dokonamy tak:
[ziutus@localhost ziutus]$ rpm -qa | grep mc libtermcap2-2.0.8-30mdk mc-4.5.55-7mdk termcap-11.0.1-4mdk
Sprawdzenie jakie pliki są w pakiecie mc-4.5.55 wykonuje się całkiem prosto:
[ziutus@localhost ziutus]$ rpm -ql mc-4.5.55 /etc/profile.d/mc.csh /etc/profile.d/mc.sh [cat]
Naszą ciekawość do jakiego pakietu należy dany plik zaspokoimy dzięki parametrowi -f.
[ziutus@localhost ziutus]$ rpm -qf /usr/bin/mc mc-4.5.55-7mdk
O pozostałych możliwościach programu rpm dowiesz się z strony pomocy systemowej rpm (man rpm albo info rpm).
Przydatne strony WWW
Czasem brakuje nam jakiegoś pakietu do spełnienia zależności (czy to programu, który instalujemy, czy próbujemy kompilować), i wtedy kłopotliwe może okazać się jego znalezienie.
W takim przypadku należy udać się na stronę www.rpmfind.net i tam wpisać poszukiwaną nazwę. Niestety spis ten obejmuje tylko nazwy pakietów, pliki binarne oraz biblioteki współdzielone. Jeszcze lepszą stroną zawierającą informacje o pakietach RPM jest http://www.rpmseek.com, pozwala wyszukać pakiety w określonych dystrybucjach po takich kryteriach jak: nazwa pakietu, pliki w pakiecie, opis czy zależności. Jeżeli tam nie znajdziemy nazwy poszukiwanego pakietu możemy spróbować odnaleźć ją na stronie Debiana (chociaż to inny system pakietów) poświęconej jego pakietom (http://www.debian.org/distrib/packages), gdyż ta wyszukiwarka zawiera spis wszystkich plików a Debian posiada największą ilość pakietów (programów). W wielu przypadkach nazwy pakietów Debiana pokrywają się z ich odpowiednikami w dystrybucjach używających PRMów.
Narzędzia wspomagające administrację pakietami
Istnieje kilka narzędzi wspomagających pracę z pakietami. Są to:
- Midnight Commander
- Purp (przestarzałe narzędzie http://www.lysator.liu.se/purp/)
- apt-rpm – port debianowego narzędzia do architektury rpm http://apt-rpm.org/)
- urpmi w dystrybucji Madnrake (http://www.urpmi.org/)
- up2date – narzędzie do akutalizacji dystrybucji RedHat
ćwiczenie 1
- Proszę zainstalować następujące programy: mutt, pine, linx, lynx, slrn.
- Proszę sprawdzić informację o programie mutt.
- Proszę wyświetlić spis plików z pakietu links