rpm(8)

NAZWA
rpm - Menedżer pakietów Red Hat

SKŁADNIA
rpm [opcje]

OPIS
rpm jest potężnym menedżerem pakietów, który może być używany do budowania, instalowania, zapytywania, weryfikowania, odświeżania i odinstalowywania pakietów oprogramowania. Pakiet składa się z archiwum plików oraz informacji pakietowej, takiej jak nazwa, wersja i opis. Należy wybrać jeden z następujących podstawowych trybów: Inicjalizowania bazy danych, Przebudowywania bazy danych, Budowania pakietu, Rekompilowania pakietu, Budowania pakietu z tarballa, Zapytywania, Pokazywania tagów zapytywania, Instalowania, Odświeżania, Odinstalowywania, Weryfikowania, Sprawdzania sygnatury, Ponownego podpisywania, Dodawania sygnatury, ustawiania właścicieli i grup oraz Pokazywania konfiguracji. Obsługa bazy danych:
rpm -i [--initdb]
rpm -i [--rebuilddb] Budowanie:
rpm [-b|t] [spec_pakietu]+
rpm [--rebuild] [źródłowyrpm]+
rpm [--tarbuild] [źródłowtar]+
Querying:
rpm [--query] [opcjezapytania]
rpm [--querytags]
Obsługa zainstalowanych pakietów:
rpm [--install] [opcjeinstalowania] [plik_pakietu]+
rpm [--freshen|-F] [opcjeinstalowania] [plik_pakietu]+
rpm [--uninstall|-e] [opcjeodinstalowania] [pakiet]+
rpm [--verify|-V] [opcjeweryfikowania] [pakiet]+
Sygnatury:
rpm [--verify|-V] [opcjeweryfikowania] [pakiet]+
rpm [--resign] [plik_z_pakietem]+
rpm [--addsign] [plik_z_pakietem]+
Różne:
rpm [--showrc]
rpm [--setperms] [pakiet]+
rpm [--setgids] [pakiet]+

OPCJE OGÓLNE
Opcje te mogą być używane we wszystkich trybach.

-vv Drukuje dużo danych debuggowych.

--quiet
    Drukuje jak najmniej - zazwyczaj tylko komunikaty o błędach.

--help
    Drukuje informację o użyciu dłuższą niż normalnie.

--version
    Drukuje pojedynczą linię, zawierającą numer wersji rpm.

--rcfile <listaplików>
    Każdy z plików w oddzielonej dwukropkami <liścieplików> jest odczytywany kolejno przez rpm w poszukiwnaiu informacji o konfiguracji. Domyślną <listąplików jest /usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc. Istnieć musi tylko pierwszy plik listy, a tyldy będą rozszerzane na wartość $HOME.

--root <katalog>
    Użyj do wszystkich operacji systemu zakorzenionego w <katalogu>. Zauważ, że oznacza to że baza danych będzie odczytywana w <katalogu>, a wszystkie skrypty przed i po będą uruchamiane po chroot(2) na <dir>.

--dbpath <ścieżka>
    Użyj bazy danych rpm ze <ścieżki>.

--justdb
    Odśwież tylko bazę danych, nie system plików.

--ftpproxy <host>, --httpproxy <host>
    Użyj <hosta> jako proxy FTP lub HTTP. Zobacz OPCJE FTP/HTTP.

--ftpport <port>, --httpport <port>
    Użyj <portu> jako portu FTP lub HTTP na hoście proxy. Zobacz OPCJE FTP/HTTP.

--pipe <kmd>
    Przekazuje potokiem wyjście rpm do komendy <kmd>.

OPCJE INSTALOWANIA I ODŚWIEŻANIA
Ogólną postacią komendy instalowania rpm jest

    rpm -i [opcje-instalownaia] <plik_pakietu>+

Instaluje to nowy pakiet. Ogolną postacią komendy odświeżania rpm jest

    rpm -U [opcje-instalowania] <plik_pakietu>+

Odświeża to lub instaluje pakiet na wersję, obecną w nowym RPM. Jest to to samo co install, lecz wszystkie inne wersje pakietu będa najpierw z systemu usuwane.

    rpm [-F|--freshen] [opcje-instalowania] <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 . Zobacz OPCJE FTP/HTTP.

--force
    To samo co użycie --replacepkgs, --replacefiles, i --oldpackage.

-h, --hash
    Drukuje 50 znaków krzyżyka, pokazując proces rozpakowywania archiwum. Używając z -v, uzyskasz ładny obraz.

--oldpackage
    Zezwól odświeżeniu na zastąpienie nowszego pakietu starszym.

--percent
    Drukuj procenty podczas rozpoakowywania plików z archiwum. Jest to zrobione w celu ułatwienia wywoływnaia RPM z innych narzędzi.

--replacefiles
    Instaluj pakiety nawet jeśli zastępują one pliki z innych, już zainstalowanych pakietów.

--replacepkgs
    Instaluj pakiety nawet jeśli niektóre z nich są już zainstalowane na tym systemie.

--allfiles
    Instaluje lub odświeża wszystkie brakująceok (missingok) pliki z pakietu, niezależnie czy istnieją.

--nodeps
    Nie dokonuj sprawdzenia zależności przed instalowaniem, lub odświeżaniem pakietu.

--noscripts
    Nie wywołuj skryptów przed i poinstalacyjnych.

--notriggers
    Nie wywołuj skryptów, które są pociągane przez instalację tego pakietu.

--ignoresize
    Nie sprawdzaj czy na zamontowanych systemach plików jest dość miejsca na zainstalowanie tego pakietu.

--excludepath <path>
    Nie instaluj plików, których nazwy rozpoczynają się od <path>.

--excludedocs
    Nie instaluj żadnych plików, które są zaznaczone jako dokumentacja (co tyczy się także podręczników man i texinfo).

--includedocs
    Instaluj pliki dokumentacji. Tak jest domyślnie.

--test
    Nie instaluj pakietu, po prostu sprawdź czy istnieją konflikty.

--ignorearch
    Umożliwia to instalację, lub odświeżanie nawet w wypadku gdy architektury binarnego RPM i hosta nie odpowiadają sobie.

--ignoreos
    Umożliwia to instalowanie, lub odświeżanie nawet w wypadku gdy systemy operacyjne binarnego RPM i hosta nie odpowiadają sobie.

--prefix <ścieżka>
    Ustawia to przedrostek instalacji na <ścieżkę> dla relokowalnych pakietów.

--relocate <staraścieżka>=<nowaścieżka>
    W wypadku pakietów relokowalnych, transluje pliki, które byłyby wstawione do <starejścieżki> na <nowąścieżkę>.

--badreloc
    Do użytku w połączeniu z --relocate. Wymusza relokację nawet gdy pakiet nie jest relokowalny.

--noorder
    Nie porządkuj pakietów dla instalacji. Lista pakietów w normalnych wypadkach jest porządkowana na nowo by spełnić zależności.

OPCJE ZAPYTAŃ
Ogólną postacią komendy zapytania rpm jest

    rpm -q [opcje-zapytań]

Możesz podać format, w jakim powinna zostać zapisywana informacja pakietowa. Aby tego dokonać, użyj opcji [--queryformat|-qf], z dołączonym łańcuchem formatującym. 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). Poniważ rpm już zna typ do drukowania, specyfikator typu jest pomijany. W jego miejsce wchodzi nazwa tagu drukowanego nagłówka, ujęta w znaki {}. Część RPMTAG_ nazwy taga może być opuszczona. Można zażądać innych formatów wyjściowych przez zakończenie taga :typetag. Obecnie obsługiwane są następujące typy: octal, date, shescape, perms, fflags i depflags. Na przykład aby wydrukować tylko nazwy zapytywanych pakietów, możesz użyć jako łańcucha formatującego samego %{NAME}. Aby wydrukować nazwy pakietów i informacje dystrybucji (w dwóch kolumnach), możesz użyć %-30{NAME}%{DISTRIBUTION}. (Name będzie w 30 znakowym okienku, z wyrównaniem do lewej--zobacz printf(3)--przyp. tłum.) Jeśli uruchomić go z argumentem --querytags, rpm będzie drukował listę wszystkich tagów, o których wie. Istnieją dwa podzbiory opcji dla zapytywania: wybór pakietu i wybór informacji. Opcje wyboru pakietu:

<nazwa_pakietu>
    Zapytaj zainstalowany pakiet o nazwie <nazwa_pakietu>.

-a, --all
    Zapytaj wszystkie zainstalowane pakiety.

--whatrequires <właściwość>
    Zapytaj wszystkie pakiety, wymagające <właściwości> do prawidłowego działania.

--whatprovides <wirtualna>
    Zapytaj wszystkie pakiety, dające <wirtualną> właściwość.

-f <plik>, --file <plik>
    Zapytaj pakiet, będący właścicielem <pliku>.

-g <grupa>, --group <grupa>
    Zapytaj pakiety o grupie <grupa>.

-p <plik_pakietu>
    Zapytaj (niezainstalowany) pakiet <plik_pakietu>. Plik ten może być podany w stylu ftp lub http. W takiej sytuacji, przed zapytaniem zostanie pobrany. Zobacz OPCJE FTP/HTTP.

--specfile <plikspec>
    Przetwórz i zapytaj <plikspec tak, jakby był pakietem. Chociaż nie jest dostępna cała informacja (np. lista plików), to ten typ zapytań umożliwia używanie rpm do wyciągania informacji z plików spec bez potrzeby pisania specyficznego parsera.

--querybynumber <num>
    Zapisaj wprost <num>-ty wpis bazy danych; jest to przydatne do debuggowania.

--triggeredby <pkg>
    Zapytaj pakiety, które są pociągnięte przez pakiety <pkg>.

Opcje wyboru informacji:

-i  Wyświetl informację o pakiecie, łącznie z nazwą, wersją i opisem. O ile podano --queryformat, to jest on używany.

-R, --requires
    Listuj pakiety, od których zależy ten pakiet.

--provides
    Listuj właściwości, które udostępnia ten pakiet.

--changelog
    Wyświetl informacje zmian dla tego pakietu.

-l, --list
    Listuj pliki z pakietu.

-s, --state
    Wyświetl stany plików w pakiecie (wymusza -l). Stan każdego pliku może być jednym z normal (normalny), not installed (niezainstalowany), lub replaced (zamieniony).

-d, --docfiles
    Listuj tylko pliki dokumentacji (wymusza -l).

-c, --configfiles
    Listuj tylko pliki konfiguracji (wymusza -l).

--scripts
    Listuj skrypty powłoki, specyficzne dla pakietu, które są używane jako część procesu instalowania i odinstalowywania (o ile takie skrypty istnieją).

--triggers, --triggerscripts
    Wyświetl skrypty wywołujące (trigger scripts), zawarte w pakiecie.

--dump
    Wyświetl w następujący sposób informację o pliku: ścieżka rozmiar czasmodyfukacji sumamd5 prawa właściciel grupa jestkonfiguracyjny jestdokumentacją rdev dowiązaniesymboliczne. Musi to być użyte z przynajmniej jednym z -l, -c, -d.

--last
    Porządkuje listing pakietów podczas instalowania tak, że ostatnie pakiety są na górze.

--filesbypkg
    Listuje wszystkie pliki z każdego z pakietów.

--triggerscripts
    Pokazuje wszystkie skrypty wywołujące (trigger) z wybranych pakietów.

OPCJE WERYFIKACJI
Ogólną postacią komendy weryfikacji rpm jest

    rpm -V|-y|--verify [opcje-weryfikacji]

Weryfikowanie pakietu porównuje informacje o zainstalowanych plikach w pakiecie z informacją o plikach, pobraną z oryginalnego pakietu, zapisanego w bazie rpm. 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. Opcje specyfikacji pakietu są takie same jak dla zapytywania pakietów. Pliki, które nie były zainstalowane z pakietu, jak na przykład dokumentacja, wyłączona opcją "--excludedocs", są cicho ignorowane. Opcje, których można użyć w trybie weryfikacji:

--nofiles
    Ignoruje podczas weryfikacji brakujące pliki.

--nomd5
    Ignoruje podczas weryfikacji błędy sum MD5.

--nopgp
    Ignoruje podczas weryfikacji błędy sprawdzania PGP.

--nofiles
    Ignoruje podczas weryfikacji brakujące pliki. (dejavu? przyp. tłum. ;) Format wyjścia to łańcuch 8 znaków, prawdopodobny "c", oznaczający plik konfiguracyjny, a następnie nazwa pliku. Każdy z 8 znaków oznacza wynik porównania jednego atrybutu pliku z wartością atrybutu, zakodowaną w bazie RPM. Kropka "." oznacza, że test przeszedł pomyślnie. Następujące znaki oznaczają błędy określonych testów:

5   suma MD5

S   rozmiar pliku

L   dowiązanie symboliczne

T   czas modyfikacji

D   urządzenie

U   użytkownik

G   grupa

M   prawa (włącza prawa i typ pliku)

SPRAWDZANIE SYGNATURY
Ogólną postacią komendy sprawdzania sygnatury jest

    rpm --checksig <plik_pakietu>+

Sprawdza to sygnaturę PGP pakietu plik_pakietu aby zapewnić jego integralność i pochodzenie. Informacja konfiguracji PGP jest odczytywana z plików konfiguracji. Zobacz sekcję o SYGNATURACH PGP.

OPCJE ODINSTALOWANIA
Ogólną postacią komendy odinstalowania rpm jest

        rpm -e <nazwa_pakietu>+

--allmatches
    Usuń wszystkie wersjie pakietu, które odpowiadają <nazwie_pakietu. Normalnie wyświetlany jest błąd gdy nazwa ta odpowiada wielu pakietom.

--noscripts
    Nie wywołuj skryptów pre i postinstalacyjnych.

--notriggers
    Nie wywołuj skryptów, które są pociągane przez usuwanie pakietu.

--nodeps
    Nie sprawdzaj zależności przed odinstalowaniem.

--test
    Nie odinstalowuj niczego naprawdę, przejdź tylko przez kolejne etapy. Przydatne w połączeniu z opcją -vv.

OPCJE BUDOWANIA
Ogólną postacią komendy budowania rpm jest

    rpm -[b|t]O [opcje-budowania] <spec_pakietu>+

Jeśli do zbudowania pakietu używany jest plik spec, to argumentem powinno być -b, a jeśli RPM powinien zajrzeć wewnątrz skompresowanego pliku tar w poszukiwaniu speca, to powinna być użyta opcja -t. Po pierwszym argumencie, drugi (O) określa etapy budwania i pakietowania, które należy wykonać. Może to być jedno z:

-bp Wykonuje etap "%prep" z pliku spec. Normalnie wymaga to rozpakowania źródeł i załączenia wszelkich łat.

-bl Dokonaj sprawdzenia listy. Sekcja "%files" pliku spec jest makro rozwijana i dokonywane są sprawdzenia, by upewnić się że każdy plik istnieje.

-bc Wykonaj etap "%build" z pliku spec (po dokonaniu etapu prep). Ogólnie angażuje to ekwiwalenta "make".

-bi Wykonaj etap "%install" z pliku spec (po dokonaniu etapów prep i build). Ogólnie angażuje to ekwiwalenta "make install".

-bb Buduj pakiet binarny (po dokonaniu etapów prep, build i install).

-bs Buduj pakiet źródłowy (po dokonaniu etapów prep, build i install).

-ba Buduj pakiety binarny i źródłowy (po dokonaniu etapów prep, build i install).

Mogą być też użyte następujące opcje:

--short-circuit
    Przejdź wprost do podanego etapu (np. pomiń wszystkie etapy prowadzące do podanego). Prawidłowe tylko z -bc i -bi.

--timecheck
    Ustaw wiek "sprawdzeniaczasu" (0 wyłącza). Wartość ta może być też skonfigurowana przez definiowanie makra "_timecheck". Wartość ta wyraża w sekundach maksymalny wiek pakowanego pliku. Dla plików starszych drukowane będą ostrzeżenia.

--clean
    Usuń drzewo budowania po stworzeniu pakietów.

--rmsource
    Usuń źródła i plik spec po budowaniu (może być też używane samodzielnie, np. "rpm --rmsource foo.spec").

--test
    Nie wykonuj żadnych etapów budowania. Przydatne do testowania plików spec.

--sign
    Osadź w pakiecie sygnaturę PGP. Sygnatura ta może być używana do weryfikowania integralności i pochodzenia pakietu. Zobacz sekcję o SYGNATURACH PGP.

--buildroot <dir>
    Podczas budowania pakieu przeciąż tag BuildRoot na katalog <dir>.

--target <platforma>
    Podczas budowania pakietu zinterpretuj <platformę> jako arch-vendor-os i ustaw odpowiednio makra _target, _target_arch oraz _target_os.

--buildarch <arch>
    Podczas budowania pakietu, ustaw architekturę na <arch>. Opcja ta jest przedawniona przez --target z RPM 3.0.

--buildos <os>
    Podczas budowania pakietu, ustaw architekturę na <os>. Opcja ta jest przedawniona przez --target z RPM 3.0.

OPCJE PRZEBUDOWANIA I REKOMPILACJI
Istnieją dwa inne sposoby na wywołanie budowania w rpm: rpm --recompile <plik_źródłowy_pakietu>+ rpm --rebuild <plik_źródłowy_pakietu>+ Po takim wywołaniu, rpm instaluje nazwany pakiet źródłowy oraz dokonuje prep, kompilacji i instalacji. Dodatkowo, --rebuild buduje nowy pakiet binarny. Po tym jak budowanie jest zakończone, katalog budowania jest usuwany (jak w --clean), a potem źródła i plik spec dla pakietu są usuwane.

PODPISYWANIE ISTNIEJĄCEGO RPM
rpm --resign <binarny_plik_pakietu>+ Opcja ta generuje i wstawia nowe sygnatury do wymienionych pakietów. Wszelkie istniejące sygnatury są usuwane. rpm --addsign <binarny_plik_pakietu>+ Opcja ta generuje i dopisuje nowe sygnatury dla wymienionych pakietów.

SYGNATURY PGP
Aby używać właściwości sygnatur, RPM musi być skonfigurowany aby mógł uruchamiać PGP. Musi być w stanie znaleźć pęk kluczy publicznych, w którym znajdują się klucze publiczne RPM. Domyślnie, RPM używa do ich znalezienia domyślnych wartości PGP (honorując PGPPATH). Jeśli twoje klucze nie są zlokalizowane tam, gdzie PGP ich oczekuje, możesz skonfigurować makro

_pgp_path
    na ścieżkę pęków kluczy PGP.

Jeśli chcesz podpisywać pakiety, które sam tworzysz, możesz też potrzebować utworzyć swój własny klucz publiczny i poufny (zobacz podręcznik PGP, pgp(1)) Będziesz też potrzebował skonfigurować makra

_signature
    Typ sygnatury. Obecnie obsługiwany jest tylko pgp.

_pgp_name
    Nazwa "użytkownika", którego klucz będzie używany do podpisu.

Podczas budowania pakietów tzeba wtedy dodać w linii komend --sign. Będziesz zapytany o swoją frazę kodującą, a twój pakiet zostanie zbudowany i podpisany. Na przykład, aby użyć PGP do podpisania pakietów jako użytkownik "John Doe <jdoe@foo.com>" z pęku kluczy, zlokalizowanego w /etc/rpm/.pgp, załączyłbyś

%_signature
    pgp

%_pgp_name
    /etc/rpm/.pgp

%_pgp_name
    John Doe <jdoe@foo.com>"

w pliku konfiguracji makr. Do ogólnosystemowej konfiguracji użyj /etc/rpm/macros, a dla lokalnej ~/.rpmmacros.

OPCJE PRZEBUDOWYWANIA BAZY DANYCH
Ogólna postać komendy przebudowywania bazy danych rpm to

    rpm --rebuilddb

Aby przebudować nową bazę danych, wykonaj:

    rpm --initdb

Jedynymi opcjami dla tych trybów są --dbpath i --root.

SHOWRC
Uruchamianie

    rpm --showrc

pokazuje wartości, których RPM będzie używał dla wszystkich opcji, które mogą być ustawione w plikach rpmrc.

OPCJE FTP/HTTP
RPM zawiera prostych klientów FTP i HTTP, które upraszczają instalowanie i zapytywanie pakietów, które są dostępne w sieci. Pliki pakietów można podawać w url'u w stylu ftp lub http:

    ftp://<użytkownik>:<hasło>@host:<port>/ścieżka/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:

--ftpproxy <host>
    Podany host będzie używany jako proxy dla wszystkich transferów ftp, co umożliwia użytkownikom ftp przez maszyny ścian ognia, które używają systemów proxy. Opcja ta może być też podana przez skonfigurowanie makra _ftpproxy.

--ftpport <port>
    Numer portu TCP, którego użyć do połączenia ftp na serwerze proxy, zamiast portu domyślnego. Opcja ta może być też podana przez skonfigurowanie makra _ftpport.

RPM zezwala na używanie z URL-ami HTTP następujących opcji:

--httpproxy <host>
    Podany host będzie używany jako proxy dla wszystkich transferów http. Opcja ta może być też podana przez skonfigurowanie makra _httpproxy.

--httpport <port>
    Numer portu TCP, którego użyć do połączenia http na serwerze proxy zamiast portu domyślnego. Opcja ta może być też podana przez skonfigurowanie makra _httpport.

PLIKI
/usr/lib/rpm/rpmrc
/etc/rpmrc
~/.rpmrc
/var/lib/rpm/packages
/var/lib/rpm/pathidx
/var/lib/rpm/nameidx
/tmp/rpm*

ZOBACZ TAKŻE
glint(8), rpm2cpio(8), http://www.rpm.org/

AUTORZY
Marc Ewing <marc@redhat.com>
Jeff Johnson <jbj@redhat.com>
Erik Troan <ewt@redhat.com>