rpm - Red Hat správca balíkov
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
- S.
- Veľkosť súboru
- T.
- Symbolický link
- U.
- Mtime (posledný čas modifikácie)
- V.
- Zariadenie
- W.
- Uívateľ
- X.
- Skupina
- Y.
- 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>** ako arch-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*
-
Marc Ewing <marc@redhat.com>
Jeff Johnson <jbj@redhat.com>
Erik Troan <ewt@redhat.com>