rpm {-q|--query} [opcje-wyboru] [opcje-zapytań]
rpm {-V|--verify} [opcje-wyboru] [opcje-weryfikacji]
rpm --import KLUCZ_PUBLICZNY ...
rpm {-K|--checksig} [--nosignature] [--nodigest]
PLIK_PAKIETU ...
rpm {-i|--install} [opcje-instalacji] PLIK_PAKIETU ...
rpm {-U|--upgrade} [opcje-instalacji] PLIK_PAKIETU ...
rpm {-F|--freshen} [opcje-instalacji] PLIK_PAKIETU ...
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--test] NAZWA_PAKIETU ...
rpm {--initdb|--rebuilddb}
rpm {--addsign|--resign} PLIK_PAKIETU ...
rpm {--querytags|--showrc}
rpm {--setperms|--setugids} NAZWA_PAKIETU ...
[NAZWA_PAKIETU] [-a,--all] [-f,--file PLIK]
[-g,--group GRUPA] {-p,--package PLIK_PAKIETU]
[--hdrid SHA1] [--pkgid MD5] [--tid TID]
[--querybynumber NUMER_NAGŁÓWKA] [--triggeredby NAZWA_PAKIETU]
[--whatprovides WŁASNOŚĆ] [--whatrequires WŁASNOŚĆ]
[--changelog] [-c,--configfiles] [-d,--docfiles] [--dump]
[--filesbypkg] [-i,--info] [--last] [-l,--list]
[--provides] [--qf,--queryformat FORMAT_ZAPYTANIA]
[-R,--requires] [--scripts] [-s,--state]
[--triggers,--triggerscripts]
[--nodeps] [--nofiles] [--noscripts]
[--nodigest] [--nosignature]
[--nolinkto] [--nomd5] [--nosize] [--nouser]
[--nogroup] [--nomtime] [--nomode] [--nordev]
[--aid] [--allfiles] [--badreloc] [--excludepath STARA_ŚCIEŻKA]
[--excludedocs] [--force] [-h,--hash]
[--ignoresize] [--ignorearch] [--ignoreos]
[--includedocs] [--justdb] [--nodeps]
[--nodigest] [--nosignature] [--nosuggest]
[--noorder] [--noscripts] [--notriggers]
[--oldpackage] [--percent] [--prefix NOWA_ŚCIEŻKA]
[--relocate STARA_ŚCIEŻKA=NOWA_ŚCIEŻKA]
[--replacefiles] [--replacepkgs]
[--test]
rpm jest potężnym menedżerem pakietów, który może być używany do budowania, instalowania, odpytywania, weryfikowania, uaktualniania i usuwania pakietów oprogramowania. Pakiet składa się z archiwum plików oraz metadanych używanych do instalowania i usuwania plików. Metadane zawierają pomocnicze skrypty, atrybuty plików oraz informacje opisujące pakiet. Pakiety występują w dwóch wersjach: pakietach binarnych, służących do opakowania oprogramowania do instalacji oraz pakietach źródłowych, zawierających kod źródłowy i przepis na zbudowanie pakietów binarnych.
Należy wybrać jeden z następujących podstawowych trybów: Odpytywania, Weryfikowania, Sprawdzania sygnatury, Instalowania/Uaktualniania/Odświeżania, Odinstalowywania, Inicjalizowania bazy danych, Przebudowywania bazy danych, Ponownego podpisywania, Dodawania sygnatury, ustawiania właścicieli i grup, Pokazywania etykiet zapytań, oraz Pokazywania konfiguracji.
Opcje te mogą być używane we wszystkich trybach.
Ogólną postacią komendy instalowania rpm-a jest
rpm {-i|--install} [install-options] PLIK_PAKIETU ...
Instaluje to nowy pakiet.
Ogólną postacią komendy uaktualniania rpm-a jest
rpm {-U|--upgrade} [install-options] PLIK_PAKIETU ...
Uaktualnia to aktualnie zainstalowany lub instaluje pakiet w nowej wersji. Jest to to samo co install, lecz wszystkie inne wersje pakietu będą usunięte po zainstalowaniu nowego pakietu.
rpm {-F|--freshen} [install-options] PLIK_PAKIETU ...
Odświeży to pakiety, lecz tylko jeśli wcześniejsza wersja już istnieje. PLIK_PAKIETU może być podany jako URL ftp lub http. W tym wypadku pakiet zostanie pobrany przed zainstalowaniem. W sekcji OPCJE FTP/HTTP znajduje się więcej informacji o wewnętrznej obsłudze klienckiej ftp i http w rpm.
--nopre --nopost --nopreun --nopostun
i wyłącza wykonywanie odpowiadających im skryptów %pre, %post, %preun oraz %postun.
--notriggerin --notriggerun --notriggerpostun
i wyłącza wykonywanie odpowiadających im skryptów %triggerin, %triggerun oraz %triggerpostun.
Ogólną postacią komendy usuwania rpm-a jest
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] NAZWA_PAKIETU ...
Można użyć następujących opcji:
--nopreun --nopostun
i wyłącza wykonywanie odpowiadających im skryptów %preun oraz %postun.
--notriggerun --notriggerpostun
i wyłącza wykonywanie odpowiadających im skryptów %triggerun oraz %triggerpostun.
rpm {-q|--query} [opcje-wyboru] [opcje-zapytań]
Można podać format, w jakim powinna zostać wypisywana informacja o pakiecie. Aby tego dokonać, użyj opcji
--qf|--queryformat FORMAT_ZAPYTANIA
z dołączonym łańcuchem formatującym FORMAT_ZAPYTANIA. Formaty zapytań są zmodyfikowanymi wersjami standardowego formatowania printf(3). Format jest złożony ze statycznych łańcuchów (które mogą zawierać standardowe znaki specjalne C - dla nowych linii, tabulacji itp.) oraz formatek typu, podobnych do tych z printf(3). Ponieważ rpm już zna typ do wypisania, specyfikacja typu jest pomijana. W jej miejsce wchodzi nazwa etykiety wypisywanego nagłówka, ujęta w znaki {}. Nazwy etykiet nie są wrażliwe na wielkość liter, a początkowa część RPMTAG_ nazwy etykiety może być opuszczona.
Można zażądać innych formatów wyjściowych przez zakończenie etykiety :znacznik_typu. Obecnie obsługiwane są następujące typy:
Na przykład aby wypisać tylko nazwy odpytywanych pakietów, można użyć jako łańcucha formatującego samego %{NAME}. Aby wypisać nazwy pakietów i informacje o dystrybucji w dwóch kolumnach, można użyć %-30{NAME}%{DISTRIBUTION} (Nazwa będzie w 30 znakowym okienku, z wyrównaniem do lewej - zobacz printf(3) - przyp. tłum.)
rpm uruchomiony z argumentem --querytags wypisze listę wszystkich znanych etykiet.
Istnieją dwa podzbiory opcji dla odpytywania: wybór pakietu i wybór informacji.
ścieżka rozmiar czas_mod suma_md5 prawa właściciel grupa konfig dokum rdev symlink
Ta opcja musi być użyta z przynajmniej jednym z -l, -c, -d. --filesbypkg Listuje wszystkie pliki z każdego z pakietów.
Ogólną postacią komendy weryfikacji rpm-a jest
rpm {-V|--verify} [opcje-wyboru] [opcje-weryfikacji]
Weryfikowanie pakietu porównuje informacje o zainstalowanych plikach w pakiecie z informacją o plikach pobraną z oryginalnego pakietu, zapisanego w bazie rpm-a. Wśród innych rzeczy, porównywane są rozmiary, sumy MD5, prawa, typ, właściciel i grupa każdego pliku. Wszystkie niezgodności są natychmiast wyświetlane. Pliki, które nie były zainstalowane z pakietu, jak na przykład dokumentacja przy instalacji z opcją "--excludedocs", są po cichu ignorowane.
Opcje wyboru pakietów są takie same jak dla odpytywania pakietów (włącznie z plikami manifest jako argumentami). Inne opcje unikalne dla trybu weryfikacji to:
Format wyjścia to łańcuch 9 znaków, z możliwym znacznikiem atrybutu:
c %config plik konfiguracyjny. d %doc plik dokumentacji. g %ghost plik nie istniejący (nie dołączony do danych pakietu). l %license plik licencji. r %readme plik przeczytaj-to.
z nagłówka pakietu, zakończonych nazwą pliku. Każdy z 9 znaków oznacza wynik porównania jednego atrybutu pliku z wartością atrybutu zapisaną w bazie danych. Pojedyncza "." (kropka) oznacza, że test przeszedł pomyślnie, natomiast pojedynczy "?" (znak zapytania) oznacza, że test nie mógł być przeprowadzony (na przykład uprawnienia pliku uniemożliwiają odczyt). W pozostałych przypadkach znak oznacza niepowodzenie odpowiadającego mu testu --verify:
S (Size) - rozmiar pliku się różni M (Mode) - tryb (uprawnienia lub typ) pliku się różni 5 (MD5) - suma MD5 się różni D (Device) - numery główny/poboczny urządzenia się nie zgadzają L (Link) - ścieżka dowiązania się nie zgadza U (User) - właściciel pliku się różni G (Grupa) - grupa pliku się różni T (mTime) - czas modyfikacji pliku się różni
Ogólne postacie komend związanych z sygnaturami cyfrowymi to
rpm --import KLUCZ_PUBLICZNY ...
rpm {--checksig} [--nosignature] [--nodigest]
PLIK_PAKIETU ...
Opcja --checksig sprawdza wszystkie skróty kryptograficzne i sygnatury zawarte w PLIKU_PAKIETU, aby zapewnić jego integralność i pochodzenie. Zauważ, że sygnatury są teraz weryfikowane przy każdym odczycie pakietu, a --checksig jest przydatne do zweryfikowania wszystkich skrótów i sygnatur związanych z pakietem.
Sygnatury cyfrowe nie mogą być zweryfikowane bez klucza publicznego. Klucz publiczny w opakowaniu ASCII może być dodany do bazy rpm-a przy użyciu --import. Zaimportowany klucz publiczny jest przechowywany w nagłówku, a zarządzanie pierścieniem kluczy wykonuje się dokładnie tak samo, jak zarządzanie pakietami. Na przykład, wszystkie aktualnie zaimportowane klucze publiczne można wyświetlić przez:
rpm -qa gpg-pubkey*
Szczegółowe informacje o konkretnym kluczu publicznym po zaimportowaniu mogą być wyświetlone przez odpytywanie. Oto informacje o kluczu GPG/DSA Red Hata:
rpm -qi gpg-pubkey-db42a60e
Na koniec, klucze publiczne mogą być usunięte po zaimportowaniu tak samo jak pakiety. Oto jak usunąć klucz GPG/DSA Red Hata:
rpm --addsign|--resign PLIK_PAKIETU ...
Obie opcje, --addsign i --resign generują i umieszczają nowe sygnatury dla każdego podanego pakietu PLIK_PAKIETU, zastępując wszystkie istniejące sygnatury. Dwie opcje istnieją z przyczyn historycznych, aktualnie nie ma różnic w ich zachowaniu.
Aby podpisać pakiety przy użyciu GPG, rpm musi być skonfigurowany, aby mógł uruchamiać GPG i odnaleźć pierścień kluczy z odpowiednimi kluczami. Domyślnie rpm używa przy szukaniu kluczy tych samych konwencji co GPG, czyli zmiennej środowiskowej $GNUPGHOME. Jeśli pierścienie kluczy nie są zlokalizowane tam, gdzie GPG ich oczekuje, trzeba skonfigurować makro %_gpg_path aby wskazywała na lokalizację pierścieni kluczy GPG, które mają być używane.
Dla kompatybilności ze starszymi wersjami GPG, PGP oraz rpm-a, powinny być skonfigurowane tylko pakiety sygnatur OpenPGP V3. Mogą być używane algorytmy weryfikacji DSA lub RSA, ale DSA jest preferowany.
Jeśli chcesz podpisywać pakiety, które sam tworzysz, musisz też utworzyć swój własny klucz publiczny i poufny (zobacz podręcznik GPG). Będziesz też potrzebował skonfigurować makra rpm-a:
Na przykład, aby użyć GPG do podpisania pakietów jako użytkownik "John Doe <jdoe@foo.com>" z pierścieni kluczy zlokalizowanych w /etc/rpm/.pgp, przy użyciu programu /usr/bin/gpg, załączyłbyś
%_gpg_path /etc/rpm/.gpg %_gpg_name John Doe <jdoe@foo.com> %_gpgbin /usr/bin/gpg
w pliku konfiguracji makr. Do ogólnosystemowej konfiguracji użyj /etc/rpm/macros, a dla lokalnej ~/.rpmmacros.
Ogólna postać komendy przebudowywania bazy danych rpm-a to
rpm {--initdb|--rebuilddb} [-v] [--dbpath KATALOG] [--root KATALOG]
Użyj --initdb aby utworzyć nową bazę danych lub --rebuilddb, aby przebudować indeksy bazy danych z nagłówków zainstalowanych pakietów.
Polecenie
rpm --showrc
pokazuje wartości, których rpm będzie używał dla wszystkich opcji, które są aktualnie ustawione w plikach konfiguracyjnych rpmrc oraz macros.
rpm może działać jako klient FTP i/lub HTTP, co pozwala na odpytywanie lub instalowanie pakietów z Internetu. Pliki pakietów do operacji instalacji, uaktualnienia lub odpytania mogą być podane jako URL w stylu ftp lub http:
ftp://UŻYTKOWNIK:HASŁO@HOST:PORT/ścieżka/do/pakietu.rpm
Jeśli część :HASŁO jest pominięta, użytkownik zostanie o nie zapytany (jednokrotnie na parę użytkownik/host). Jeśli pominięto nazwę użytkownika i hasło, używany jest anonimowy ftp. We wszystkich przypadkach używane są pasywne (PASV) transfery ftp.
rpm zezwala na używanie z URL-ami ftp następujących opcji:
rpm zezwala na używanie z URL-ami http następujących opcji:
Tryby budowania rpm-a znajdują się teraz w programie /usr/bin/rpmbuild. Mimo że spadkowa kompatybilność zapewniona przez wymienione niżej aliasy popt jest wystarczająca, kompatybilność nie jest doskonała; dlatego kompatybilność trybu budowania poprzez aliasy popt jest usuwana z rpm-a. Zainstaluj pakiet rpm-build i zobacz rpmbuild(8), gdzie znajduje się dokumentacja wszystkich trybów budowania rpm poprzednio udokumentowana w niniejszym rpm(8).
Dodaj następujące linie do /etc/popt, jeśli chcesz nadal uruchamiać rpmbuild z linii poleceń rpm-a:
rpm exec --bp rpmb -bp rpm exec --bc rpmb -bc rpm exec --bi rpmb -bi rpm exec --bl rpmb -bl rpm exec --ba rpmb -ba rpm exec --bb rpmb -bb rpm exec --bs rpmb -bs rpm exec --tp rpmb -tp rpm exec --tc rpmb -tc rpm exec --ti rpmb -ti rpm exec --tl rpmb -tl rpm exec --ta rpmb -ta rpm exec --tb rpmb -tb rpm exec --ts rpmb -ts rpm exec --rebuild rpmb --rebuild rpm exec --recompile rpmb --recompile rpm exec --clean rpmb --clean rpm exec --rmsource rpmb --rmsource rpm exec --rmspec rpmb --rmspec rpm exec --target rpmb --target rpm exec --short-circuit rpmb --short-circuit
/usr/lib/rpm/rpmrc /usr/lib/rpm/<vendor>/rpmrc /etc/rpmrc ~/.rpmrc
/usr/lib/rpm/macros /usr/lib/rpm/<vendor>/macros /etc/rpm/macros ~/.rpmmacros
/var/lib/rpm/Basenames /var/lib/rpm/Conflictname /var/lib/rpm/Dirnames /var/lib/rpm/Filemd5s /var/lib/rpm/Group /var/lib/rpm/Installtid /var/lib/rpm/Name /var/lib/rpm/Packages /var/lib/rpm/Providename /var/lib/rpm/Provideversion /var/lib/rpm/Pubkeys /var/lib/rpm/Removed /var/lib/rpm/Requirename /var/lib/rpm/Requireversion /var/lib/rpm/Sha1header /var/lib/rpm/Sigmd5 /var/lib/rpm/Triggername
popt(3), rpm2cpio(8), rpmbuild(8),
http://www.rpm.org/ <URL:http://www.rpm.org/>
Marc Ewing <marc@redhat.com> Jeff Johnson <jbj@redhat.com> Erik Troan <ewt@redhat.com>