Instalujeme balíky ve formátu RPM |
Jan "Yenya" Kasprzak, 7. ledna 1998 |
V minulém čísle Linuxových novin jsem
popsal RPM balík, jeho části a informace, které jsou v tomto balíku
uvedeny o jeho jednotlivých souborech. Dnešní část je zaměřena
na instalaci RPM souborů do systému.
Prvním předpokladem instalace balíku je mít tento balík k dispozici
v RPM formátu pro danou architekturu (nebo noarch balík pro
libovolnou architekturu). RPM balík je možno mít na pevném disku nebo
na vzdáleném FTP serveru.
Cesta k balíku je jedním z parametrů příkazu rpm. Je možno
uvést buďto cestu do souborového systému (absolutní nebo relativní),
nebo URL pro přístup přes FTP:
- /cdrom/RedHat/RPMS
/ssh-1.2.21-1i.i386.rpm
- ftp://ftp.redhat.com/pub/redhat
/contrib/i386/squid-1.NOVM.18-5.i386.rpm
Pokud je balík z neznámého zdroje, je dobré před jeho instalací
zkontrolovat signaturu. K tomu je potřeba systému RPM sdělit, kde máme
uloženy svoje svazky klíčů pro PGP. Do souboru /etc/rpmrc
vložíme řádek podobný následujícímu:
pgp_path: /home/kas/.pgp
Ve svazku veřejných klíčů musíme pochopitelně mít veřejný klíč autora
balíku. U balíků patřících k distribuci je to jednoduché - veřejný
klíč Red Hat Software je na každém distribučním CD nebo
na mirrorech. Je-li balík vyroben někým jiným, je nutno si veřejný PGP
klíč obstarat jinak.
Kontrolu všech signatur v RPM balíku provedeme následujícím příkazem:
$ rpm --checksig <balík>.rpm
<balík>.rpm: size pgp md5 OK
Výstup znamená, že balík má správnou velikost i MD5 součet a že
souhlasí i PGP podpis.
Instalace balíků
Balík ve formátu RPM instalujeme pomocí programu rpm s přepínačem -i. Instalace probíhá v několika krocích:
-
Kontrola závislostí
-
- některé balíky vyžadují ke své
činnosti, aby v systému byly přítomny jiné balíky (například
poštovní klient může vyžadovat program /usr/sbin/sendmail,
program v X11 může chtít svoje dynamicky linkované knihovny a podobně). Kontrola závislostí také ověří, jestli balík
nezpůsobí problémy jinému již nainstalovanému balíku
(například v systému smí být pouze jeden program pro
doručování pošty jako je sendmail nebo qmail).
-
Kontrola konfliktů
-
- není například možné nainstalovat tentýž
balík ještě jednou, nebo instalovat balík starší verze, než
v systému právě je (toto lze obejít, pokud skutečně chceme
nainstalovat starší verzi). Nelze také instalovat balík,
který by přepsal soubory patřící jinému balíku.
-
Ošetření výskytu konfiguračních souborů
-
- je-li v systému již
přítomen konfigurační soubor nějakého programu (například
nainstalovaného mimo systém RPM), instalační program se snaží
takovýto soubor zachovat. Přesná pravidla pro nakládání s verzemi konfiguračních souborů popíšeme, až budeme hovořit o upgradech - instalacích novějších verzí balíků.
-
Spuštění preinstalačního scriptu
-
-
Rozbalení souborů, obsažených v balíku
-
-
Spuštění postinstalačního scriptu
-
-
Uložení informací
-
o nainstalovaném balíku do databáze RPM
Další možnosti
K vlastní instalaci (přepínač -i) lze specifikovat i další
podrobnější volby:
-
-v
-
- podrobnější výpis o průběhu instalace.
-
-vv
-
- ještě podrobnější výpis. Zobrazuje i informace o průběhu instalace jednotlivých souborů.
-
-h
-
- zobrazuje znaky #, které ukazují, jak
postupuje instalace.
-
--percent
-
- zobrazuje v procentech informaci o postupu
instalace balíku. Výstup z rpm s tímto přepínačem je
určen pro grafické programy, které pak mohou zobrazovat
na základě tohoto výstupu například progress-bar.
Průběh instalace lze modifikovat následujícími přepínači:
-
--test
-
- neprovede žádné akce, pouze kontroluje, jestli
lze balík nainstalovat (tj. není-li konfliktní nebo
nevyžaduje-li ještě nějaký další balík).
-
--replacepkgs
-
- provede instalaci, i když je balík již
nainstalován. Je vhodné zejména v případě, kdy dojde nějakým
způsobem k poškození původně nainstalovaných souborů a chceme
balík prostě "přeinstalovat".
-
--replacefiles
-
- přepíše soubory, které jsou obsaženy ještě v jiném balíku. Použije se v případě, kdy nový balík obsahuje
tentýž soubor jako některý již nainstalovaný balík, a když
chceme RPM přinutit přesto nový balík nainstalovat.
-
--nodeps
-
Neprovádí kontrolu závislostí mezi balíky. Lze
použít, pokud chceme například používat jen určitou část
balíku (například v balíku ssh-clients je program ssh-add, který potřebuje knihovny X11; chceme-li nainstalovat
ssh-clients na stroji, kde X11 knihovny nejsou, můžeme
použít --nodeps s tím, že nebude možno spustit program
ssh-add).
-
--force
-
- tento přepínač je zkratkou za --replacepkgs a --replacefiles.
-
--excludedocs
-
- nainstaluje balík bez
dokumentace. Nepotřebujeme-li dokumentaci, můžeme nainstalovat
balík bez souborů, které v něm byly označeny jako
dokumentační. Typicky jsou to manuálové stránky a soubory v adresáři /usr/doc.
-
--includedocs
-
- opak předchozího. Je-li v /etc/rpmrc zakázáno instalovat dokumentační soubory, můžeme
tímto přepínačem specifikovat, že pro tento konkrétní RPM
balík se má dokumentace nainstalovat.
-
--noscripts
-
- nainstaluje balík, aniž by se spustily
příslušné preinstalační a postinstalační scripty.
-
--ignorearch
-
- nainstaluje balík i přesto, že byl
původně určen pro jinou architekturu.
-
--ignoreos
-
- nainstaluje balík, původně určený pro jiný
operační systém.
-
--ftpproxy, --ftpport
-
- umožní specifikovat
adresu a port FTP proxy serveru. Použije se při instalaci
balíků z FTP, je-li počítač oddělen od FTP serveru proxy
serverem.
-
--prefix <cesta>
-
- instaluje relokovatelný
balík. Relokovatelný balík je takový, který může být
nainstalovaný do libovolné adresářové struktury. Správce
systému se pak může rozhodnout, kam balík nainstalovat. Jedna
z tradičních možností je /usr/local, jiná možnost je
například /opt, pro pokusnou instalaci můžeme zvolit
/tmp/<balík>.
-
--rcfile <soubor>
-
- určí alternativní cestu
ke konfiguračnímu souboru (implicitní je /etc/rpmrc). Z konfiguračního souboru se berou parametry pro
PGP, implicitní instalační prefix pro relokovatelné balíky
a podobně.
-
--root <cesta>
-
- instaluje tak, že adresář <cesta> je považován za kořenový. Pod adresářem <cesta> se očekává kompletní systém včetně RPM databáze a dalších programů. RPM se do tohoto adresáře přepne a nastaví
jej jako kořenový pomocí chroot(2).
-
--dbpath <cesta>
-
- jiná než implicitní cesta k RPM
databázi (implicitně je /var/lib/rpm).
To je o instalaci RPM balíků zatím všechno. Příští část našeho seriálu
bude o upgradování a rušení balíků.
|