| 
| 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žnostiK 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ů.
  |