rpm(8) rpm(8)

rpm - Red Hat správca balíkov

rpm [voľby]

rpm je veľmi výkonný správca balíkov, ktorý môe byť pouitý na zostavenie, intaláciu, výpis informácií, kontrolu, aktualizáciu a odintalovanie jednotlivých softverových balíkov. Balík obsahuje archív súborov a informácií o balíku vrátane mena, verzie a popisu.

Musí byť pouitý v niektorom z nasledujúcich reimov: inicializácia databázy, prebudovanie databázy, zostavenie balíka, rekompilácia balíka, zostavenie balíka z tar archívu, zistenie informácií, výpis informačných tagov, intalácia, občerstvenie, odintalovanie, kontrola a overenie, overenie podpisu, opätovný podpis, pridanie podpisu, nastavenie vlastníkov a skupín a výpis konfigurácie.

Spravovanie databázy:

*** rpm -i [--initdb]

rpm -i [--rebuilddb]***

Zostavenie:

*** rpm [-b|t] [balík_spec]+

rpm [--rebuild] [zdrojové_rpm]+

rpm [--tarbuild] [tarovaný_zdroj]+***

Zistenie informácií:

*** rpm [--query] [zisťovacie-voľby]

rpm [--querytags]***

Spravovanie intalovaných balíkov:

*** rpm [--install] [intalačné-voľby] [súbor_balíka]+

rpm [--freshen|-F] [intalačné-voľby] [súbor_balíka]+

rpm [--erase|-e] [odintalačné-voľby] [balík]+

rpm [--verify|-V] [overovacie-voľby] [balík]+***

Podpisy (signatúry):

*** rpm [--verify|-V] [overovacie-voľby] [balík]+

rpm [--resign] [súbor_balíka]+

rpm [--addsign] [súbor_balíka]+***

Rozličné:

*** rpm [--showrc]

rpm [--setperms] [balík]+

rpm [--setgids] [balík]+***

Tieto voľby môu byť pouité vo vetkých reimoch.

Vypíe mnostvo oklivých ladiacich informácií.
Vypíe čo najmenej informácií - normálne sa zobrazia iba chybové hláky.
Vypíe o niečo dlhiu informáciu o pouití ako je bený výpis.
Vypíe jednoriadkovú informáciu pozostávajúcu z čísla pouívanej verzie rpm.
Kadý zo súborov v <zoznam_súborov>** oddelených dvojbodkami je** postupne čítaný cez rpm za účelom získania konfiguračných informácií. Implicitný <zoznam súborov>** je/usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc.** Iba prvý súbor zo zoznamu súborov musí existovať, a vlnovky (~) sú expandované na hodnotu $HOME.
Pouije adresár <adresár>** ako koreňový adresár systému pre vetky operácie.** Uvedomte si, e toto znamená, e databáza sa sa bude čítať alebo modifikovať pod adresárom <adresár>** a vetky predintalačné a pointalačné skripty** budú beať po prevedení chroot() na adresár <adresár>.
Pouije databázu RPM v ceste <cesta>.
Aktualizuje iba databázu a nie súborový systém.
Pouije <počítač>** ako počítač s FTP alebo HTTP proxy serverom.** Bliie podrobnosti sú uvedené v sekcii VOĽBY FTP/HTTP.
Pouije <port>** ako FTP alebo HTTP port na počítači s proxy serverom.** Bliie podrobnosti sú uvedené v sekcii VOĽBY FTP/HTTP.
Presmeruje výstup rpm na príkaz <príkaz>.

VOĽBY PRI INTALÁCII A AKTUALIZÁCII (UPGRADE)

Veobecná forma intalačného príkazu je

rpm -i [intalačné-voľby] <súbor_balíka>+

Táto voľba naintaluje nový balíček. Veobecná forma aktualizačného príkazu je

rpm -U [intalačné-voľby] <súbor_balíka>+

Táto voľba aktualizuje existujúci naintalovaný balíček alebo naintaluje nový balíček. Podobá sa intalačnému príkazu, rozdiel je iba v tom, e vetky ďaľie verzie balíka sa odstránia zo systému.

rpm [-F|--freshen] [intalačné-voľby] <súbor_balíka>+

Táto voľba aktualizuje balíky, ale iba za predpokladu, e predchádzajúce verzie sú naintalované.

<súbor_balíka>** môe byť pecifikovaný ako ftp alebo http URL,** v tomto prípade sa najprv balíček stiahne a naintaluje a potom. Bliie podrobnosti o vstavanej podpore ftp a http sú uvedené v sekcii VOĽBY FTP/HTTP.

Rovnaký efekt ako súčasné pouitie --replacepkgs, --replacefiles a --oldpackage.
Vypíe 50 znakov #, keď je celý archív balíka rozbalený. Pre lepí vzhľad je vhodné pouívať s voľbou -v.
Povolí aktualizáciu prepísaním novieho balíka starím.
Vypíe stav rozbalovania súborov z balíkového archívu v percentách. Toto je praktické pri behu RPM z iných nástrojov.
Naintaluje balík aj v prípade, e nahradí súbory z iných, u naintalovaných balíkov.
Naintaluje balíky aj v prípade, e niektoré z nich u sú naintalované v systéme.
Naintaluje alebo aktualizuje vetky missingok súbory (súbory, ktoré nemusia nutne existovať) z balíka bez ohľadu na to, či existujú.
Nevykoná kontrolu závislostí pred intalovaním alebo aktualizovaním balíka.
Nevykoná predintalačné a pointalačné skripty.
Nevykoná skripty, ktorých spúťou je intalácia balíka.
Nevykoná kontrolu pripojeného súborového systému na dostatok voľného miesta pred intaláciou balíka.
Nenaintaluje súbory, ktorých mená začínajú na <cesta>.
Nenaintaluje iadne súbory, ktoré sú označené ako dokumentácia (ktoré zahŕňajú najmä manuálové stránky a texinfo dokumenty).
Naintaluje súbory, ktoré sú označené ako dokumentácia. Toto je implicitné nastavenie.
Nenaintaluje balík, iba jednoducho otestuje, čo by sa vykonalo pri intalácii a vypíe potenciálne konflikty.
Toto umoní intaláciu alebo aktualizáciu aj v prípade, e sa nezhoduje architektúra popísaná v binárnom RPM a počítača, na ktorý sa má balík intalovať.
Toto umoní intaláciu alebo aktualizáciu aj v prípade, e sa nezhoduje operačný systém popísaný v binárnom RPM a počítači, na ktorý sa má balík intalovať.
Toto nastaví intalačný prefix na <cesta>** pre relokovateľné** (premiestniteľné) balíky.
Pre relokovateľné balíky, preloí cestu súborov, ktoré sa mali umiestniť na miesto <stará_cesta>** do <nová_cesta>.**
Vnúti relokáciu aj v prípade, e balík nie je relokovateľný. Pouíva sa spolu s voľbou --relocate.
Nezmení poradie balíkov na intaláciu. V opačnomom prípade by mohlo byť zmenené poradie v zozname balíkov, aby sa zachovali závislosti.

VOĽBY PRI ZISTENÍ INFORMÁCIÍ (QUERY)

Veobecná forma príkazu zistenia informácií je

rpm -q [zisťovacie-voľby]

Je moné pecifikovať, v akom formáte majú byť vypísané výstupné údaje. Na takýto účel slúi voľba [--queryformat|--qf], nasledovaná formátovacím reťazcom.

Informačné výstupy sú modifikovanou verziou tandardného printf(3) formátovania. Formát je vytvorený zo statických reťazcov (ktoré môu zahŕňať tandardné C znakové escape sekvencie pre nový riadok, tabelátor a ďaľie peciálne znaky a printf(3) typové formátovače). Keďe rpm u vie, aky typ má vytlačiť, pecifikátor typu musí byť vynechaný a nahradený menom tagu hlavičky, ktorá má byť vytlačená, uzavretý znakmi {}. RPMTAG_ časť mena tagu môe byť vynechaná.

Alternatívny výstup formátovania môe byť poadovaný, ak je nasledovaný tagom s :typetag. Momentálne sú podporované nasledujúce typy: octal, date, shescape, perms, fflags, a depflags.

Napríklad na vytlačenie informácie o mene balíka je moné pouiť formátovací reťazec %{NAME}. Na vytlačenie informácie o mene a distribúcii v dvoch stĺpcoch je moné pouiť %-30{NAME}%{DISTRIBUTION}.

rpm zobrazí zoznam vetkých tagov, ktoré pozná, keď je spustené s argumentom --querytags.

Existujú dve podmnoiny volieb pre zistenie informácií: výber balíka a výber informácií.

Voľby výberu balíka:

Zisťuje u intalovaných balíkov s menom <meno_balíka>.
Zisťuje u vetkých naintalovaných balíkov.
Zisťuje u vetkých intalovaných balíkov, ktoré vyadujú <schopnosť> pre správnu funkčnosť.
Zisťuje u vetkých intalovaných balíkov, ktoré poskytujú vlastnosť <virtuálna_schopnosť>.
Zisťuje u balíka, ktorý vlastní súbor <file>.
Zisťuje u balíkov, ktoré majú skupinu <group>.
Zisťuje u (nenaintalovaného) balíka <súbor_balíka>. <súbor_balíka>** môe byť pecifikovaný v ftp alebo http týle URL,** v takomto prípade bude stiahnutá hlavička balíka, a z nej čítané poadované informácie. Bliie informácie o vstavanej podpore ftp a http klienta sú v sekcii FTP/HTTP VOĽBY.
Rozanalyzuje <spec_súbor>** a zisťuje informácie z tohto súboru, ako keby** to bol balík rpm. Aj napriek neprítomnosti vetkých informácií (napr. zoznam súborov), tento druh zisťovania umoňuje rpm získať informácie zo spec súboru bez nutnosti napísať peciálny analyzátor spec súborov.
Zisťuje u záznamu číslo <číslo>** databázy priamo, toto je uitočné pre** ladiace účely.
Vypíe balíky, ktorých spútou je existencia balíka <balík>.

Voľba výberu informácií:

Vypíe informácie o balíku, vrátane mena, verzie a popisu. Táto voľba vyuíva --queryformat, ak je pecifikovaný.
Vypíe zoznam balíkov, na ktorých daný balík závisí.
Vypíe zoznam vlastností/schopností, ktoré poskytuje tento balík.
Vypíe históriu zmien pre balík.
Vypíe zoznam súborov v balíku.
Vypíe stavy** jednotlivých súborov v balíku (aplikuje voľbu-l). Stav jednotlivých súborov môe byť normal (normálny),not installed (nenaintalovaný) alebo replaced (nahradený).**
Vypíe zoznam súborov označených ako dokumentácia (aplikuje -l).
Vypíe iba zoznam konfiguračných súborov (aplikuje -l).
Vypíe balíkovo pecifický shellový skript, ktorý je pouitý v intalačnom alebo odintalačnom procese, ak nejaký vôbec existuje.
Vypíe skripty, ktoré sú spúťané spúťou, ak nejaká existuje a je obsiahnutá v balíku.
Vypíe zoznam podrobných vlastností súborov pozostoávajúci z: cesta veľkosť mtime md5sum mód vlastník skupina je_konfiguračný_súbor je_dokumentačný_súbor rdev symlink. Táto voľba musí byť pouitá minimálne s jednou z nasledujúcich volieb -l, -c, -d.
Usporiada zoznam balíkov podľa času intalácie takým spôsobom, e posledný intalovaný balík bude na vrchu.
Vypíe zoznam vetkých súborov v kadom balíku.
Vypíe vetky skripty, ktoré sú spúťané spúťou vo vybranom balíku.

VOĽBY PRI KONTROLE A OVEROVANÍ

Veobecná forma príkazu kontroly je

rpm -V|-y|--verify [overovacie-voľby]

Kontrola balíka prebieha z porovnania informácií z intalovaných súborov z balíkov v systéme s informáciami o súboroch, ktoré obsahoval pôvodný balík (tieto su uloené v rpm databáze). Okrem iných údajov, kontrola porovnáva veľkosť, MD5 kontrolný súčet, oprávnenia, typ, vlastníka a skupinu kadého súboru. Vetky odchýľky sú zobrazené. Specifikačné voľby balíka sú rovnaké ako reime výpisu informácii balíkov.

Súbory, ktoré neboli intalované z balíka, týkajúce sa napr. dokumentačných súborov pri pouití voľby "--excludedocs" pri intalácii, sú v tichosti ignorované.

Voľby, ktoré môu byť pouité v kontrolnom reime:

Ignoruje chýbajúce súbory v systéme počas kontroly.
Ignoruje chyby kontrolných súčtov MD5 počas kontroly.
Ignoruje chyby PGP podpisov počas kontroly.

Výstup má formát 9 znakového reťazca, s prípadným rozírením výskytu "c", ktoré charakterizuje konfiguračný súbor a mena súboru. Kadý z ôsmych znakov popisuje výsledok porovnania jedného konkrétneho atribútu súboru s údajmi zaznamenanými v RPM databáze. Jednoduchá "." (bodka) znamená, e test preiel (neobjavené iadne odchýľky). Nasledujúce znaky oznamujú dôvod neúspechu určitého testu:

5.
MD5 kontrolný súčet
Veľkosť súboru
Symbolický link
Mtime (posledný čas modifikácie)
Zariadenie
Uívateľ
Skupina
Mód (vrátane oprávnení a typu súborov)

Veobecná forma príkazu kontroly rpm podpisu je

rpm --checksig <súbor_balíka>+

Takto sa overuje PGP podpis balíka <súbor_balíka>** na uistenie** sa o jeho integrite a pôvode. Konfiguračné informácie PGP sú čítané z konfiguračných súborov. Bliie údaje sa nachádzajú v sekcii PGP POPDPISY.

VOĽBY PRI ODINTALÁCII

Veobecná forma príkazu na odintalovanie je

** rpm -e **<meno_balíka>+

Odstráni vetky verzie balíka, ktoré súhlasia s menom <meno_balíka>. Normálne sa vyvolá chyba, ak viac balíkov súhlasí s menom <meno_balíka>.
Nevykoná pred a po odintalačné skripty.
Nevykoná skripty, ktorých spúťou je odintalovanie balíka.
Nebude skúmať závislosti pri odintalovaní balíkov.
Nič sa v skutočnosti neodintaluje, len sa preverí, čo by sa malo stať. Veľmi uitočné s voľbou -vv.

VOĽBY PRI ZOSTAVOVANÍ

Veobecná forma príkazu na zostavenie rpm je

rpm -[b|t]O** [zostavovacie-voľby] **<spec_súbor_balíka>+

Argumentom je -b, ak sa na zostavenie balíka pouije spec súbor (súbor pecifikácií balíka) alebo -t, ak RPM má vyhľadať spec súbor vnútri gzipovaného (alebo komprimovaného) tar archívu, a tento pouiť na zostavenie balíka. Po prvom argumente ďaľí argument (O) pecifikuje fázu tádia zostavenia a zabalenia, ktorá sa má vykonať, a ktorá je jedna z:

Vykoná "%prep" fázu pre spec súbor. Normálne toto vyvolá rozbalenie zdrojových archívov a aplikovanie záplat.
Vykoná "kontrolu zoznamu". Sekcia "%files" z spec súboru je makrom expandovaná, a je vykonaná kontrola, e kadý súbor existuje.
Vykoná fázu "%build" pre spec súbor (po vykonaní prep fázy). Toto normálne vyvolá ekvivalent príkazu "make".
Vykoná fázu "%install" zo spec súboru (po vykonaní prep a build fázy). Toto vo veobecnosti vyvolá ekvivalent príkazu "make install".
Zostaví binárny balík (po vykonaní prep, build a install fázy).
Zostaví iba zdrojový balík (po vykonaní prep, build a install fázy).
Zostaví binárny a zdrojový balík (po vykonaní prep, build a install fázy).

Môu byť pouité aj nasledujúce voľby:

Preskočí priamo na poadovanú fázu (t. zn. preskočí vetky fázy tádia zostavenia, ktoré predchádzajú pecifikovanej fáze). Táto voľba je platná iba s prepínačmi -bc and -bi.
Nastavuje "kontrolu času" (0 zakáe). Táto voľba môe byť nastavená definovaním makra "_timecheck". Hodnota "kontroly času" vyjadruje (v sekundách) maximálny vek súborov, ktoré budú zabalené. Varovania sú vypisované pre vetky súbory, ktorých vek je za hranicou takto definovanej hodnoty.
Odstrání zostavovací strom (adresár) potom, čo sa vytvorí balík.
Odstrání zdrojové súbory a spec súbor po zostavení (môe sa pouívať aj samostatne, napr. "rpm --rmsource foo.spec").
Nevykoná iadnu zo zostavovacej fázy. Uitočné pre otestovanie spec súboru.
Vloí PGP podpis do balíka. Tento podpis môe byť vyuitý na overenie integrity a pôvodu balíka. Bliie informácie na nastavenie sú uvedené v sekcii PGP PODPISY.
Pri zostavovaní balíka prepíe tag BuildRoot adresárom <adresár>.
Pri zostavovaní balíka sa interpretuje <platforma>** akoarch-vendor-os a makrá _target, _target_arch a** _target_os sa nastavia podľa tejto hodnoty.

VOĽBY PRI ZNOVUZOSTAVOVANÍ A REKOMPILOVANÍ

Existujú dve voľby, ako spustiť zostavenie balíka s rpm:

rpm --recompile <zdrojový_súbor_balíka>+**

rpm --rebuild <zdrojový_súbor_balíka>+**

Keď je rpm spustené týmto spôsobom, rpm naintaluje zdrojový balík a vykoná postupne fázy prípravy (prep), kompilácie a intalácie. Prídavne s voľbou --rebuild zostaví nový binárny balík. Keď sa zostavenie dokončí, adresár zostavovania (ako pri --clean), zdrojové súbory, ako aj spec súbor sa sa odstránia.

rpm --resign <binárny_súbor_balíka>+**

Táto voľba vygeneruje a vloí nový podpis pre zoznam balíkov. Vetky prípadne existujúce podpisy sa odstránia.

rpm --addsign <binárny_súbor_balíka>+**

Táto voľba vygeneruje a pridá nový podpis pre zoznam balíkov u ktorých u podpis existuje.

Aby bolo moné pouívať vlastnosti podpisovania, RPM je potrebné nastaviť spôsobom, aby mohlo spúťať PGP, a aby bolo schopné nájsť zväzok verejných kľúčov s RPM verejnými kľúčmi v ňom. Implicitne RPM pouíva implicitné hodnoty PGP na nájdenie zväzkov kľúčov (honorujúc PGPPATH). Ak je zväzok kľúčov umiestnený na inom mieste, ako PGP očakáva, je potrebné nastaviť makro

na definovanie umiestnenia zväzkov kľúčov PGP, ktoré sa majú pouiť.

Ak si eláte podpisovať balíky, ktoré si sami vytvoríte, potrebujete podobným spôsobom vytvoriť vá verejný a tajný kľúčový pár (bliie informácie sú v dokumentácii ku PGP). Taktie potrebujete konfigurovať makrá:

Meno "uívateľa", ktorého kľúčom sa má podpísať balík.

Pri zostavovaní balíka je potrebné pridať --sign do príkazového riadku. Nasledovne sa objaví výzva na heslo, a po správnom zadadaní sa balík zostaví a podpíe.

Napríkad pre pouitie PGP na podpísanie balíka ako uívateľ "John Doe <jdoe@foo.com>" zo zväzku kľúčov umiestnených v /etc/rpm/.pgp pouitím /usr/bin/pgp zápis bude obsahovať

%_pgp_path /etc/rpm/.pgp

%_pgp_name John Doe <jdoe@foo.com>

%_pgpbin /usr/bin/pgp

v konfiguračnom súbore makier: /etc/rpm/macros je určený na per-systém nastavenie a ~/.rpmmacros na per-uívateľ nastavenie.

VOĽBY PRI PREBUDOVANÍ DATABÁZY

Veobecná forma príkazu prebudovania databázy je

rpm --rebuilddb

Na vybudovanie novej databázy treba vykonať

rpm --initdb

Jedinými voľbami pre tento reim sú --dbpath a --root.

Spustením

rpm --showrc

sa vypíu hodnoty, ktoré bude RPM pouívať pri vetkých voľbách, a ktoré môu byť nastavené v rpmrc** súboroch.**

RPM obsahuje jednoduchého FTP a HTTP klienta na zjednoduenie intalácie a jednoduchieho získania informácií balíkov, ktoré sú umiestenené na sieti. Súbory balíkov určené pre intalovanie, aktualizáciu a výpis informácií je moné pecifikovať v ftp alebo http týle URL:

ftp://<uívateľ>:<heslo>@počítač:<port>/path/to/package.rpm

Ak časť :heslo chýba, objaví sa výzva na heslo (vdy len jeden krát pre pár uívateľ/počítač). Ak chýbajú obe časti - uívateľ aj heslo, pouitý je anonymný ftp. Vo vetkých prípadoch je pouitý pasívny (PASV) ftp prenos.

RPM povoluje pouiť nasledujúce voľby s ftp URL:

Počítač <meno_počítača>** sa pouije ako proxy server pre vetky ftp** prenosy, čo umoní uívateľom pouiť ftp sluby za firewallom, ktorý pouíva proxy systémy. Táto voľba môe byť tak isto pecifikovaná nastavením makra _ftpproxy.
Pouije sa číslo TCP portu <port>** pre ftp spojenie s ftp proxy** serverom namiesto implicitného portu. Táto voľba môe byť tak isto pecifikovaná nastavením makra _ftpport.

RPM umoňuje nasledujúce voľby pri pouití http URL:

Počítač <meno_počítača>** bude pouitý ako proxy server pre vetky http** prenosy. Táto voľba môe byť tak isto pecifikovaná konfigurovaním makra _httpproxy.
Pouije sa číslo TCP portu <port>** pre http spojenie s http proxy** serverom namiesto implicitného portu. Táto voľba môe byť tie pecifikovaná konfigurovaním makra _httpport.

/usr/lib/rpm/rpmrc
/etc/rpmrc
~/.rpmrc
/usr/lib/rpm/macros
/etc/rpm/macros
~/.rpmmacros
/var/lib/rpm/conflictsindex.rpm
/var/lib/rpm/fileindex.rpm
/var/lib/rpm/groupindex.rpm
/var/lib/rpm/nameindex.rpm
/var/lib/rpm/packages.rpm
/var/lib/rpm/providesindex.rpm
/var/lib/rpm/requiredby.rpm
/var/lib/rpm/triggerindex.rpm
/tmp/rpm*

glint(8), rpm2cpio(8), http://www.rpm.org/

Marc Ewing <marc@redhat.com>
Jeff Johnson <jbj@redhat.com>
Erik Troan <ewt@redhat.com>
22 December 1998