- předchozí článek - následující článek - obsah -

Linuxové noviny Leden 1998

Instalujeme balíky ve formátu RPM

Jan "Yenya" Kasprzak, 7. ledna 1998

[ RPM logo ]  
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ů. *


- předchozí článek - následující článek - obsah -