rpm(8) | rpm(8) |
rpm - Menedżer pakietów RPM
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.
Ogólną postacią komendy zapytania rpm-a jest
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 -e gpg-pubkey-db42a60e
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
/var/tmp/rpm*
http://www.rpm.org/ <URL:http://www.rpm.org/>
Marc Ewing <marc@redhat.com> Jeff Johnson <jbj@redhat.com> Erik Troan <ewt@redhat.com>
9 czerwca 2002 |