Red Hat Package Manager

Každý, kdo instaloval Linux z distribuce firmy Red Hat se s tímto správcem balíků jistě setkal, neboť jej tato instalce používá pro správu komponent, které instaluje na váš systém. Použití RPM se však neomezuje jen na distribuování Linuxu, ale i na distribuování ostatních programů. Pro práci s balíky můžeme použít řádkový příkaz "rpm", který poskytuje přístup ke všem funkcím tohot systému, nebo v prostředí X windows program "glint" (Graphical Linux INstallation Tool), který poskytuje přístup pouze k funkcím týkajícím se instalace a mazání balíků. Nyní se dostáváme k tomu, co vše umí rpm:

Dále rpm umí ověřit podpis na balíku (signature check), přebudovat svoji databázi (rebuild database), ve které si udržuje informace o nainstalovaných balících, a vypsat svou konfiguraci (show rc), která je standardně v soubru /etc/rpmrc nebo v souboru $HOME/.rpmrc. Pro podrobnější popis navštivte oficiální server rpm na adrese http://www.rpm.org/ nebo manuálovou stránku rpm (ta vám bohužel nepomůže se stavěním vlastního balíku).

Instalace balíku

Zde můžeme jméno souboru s balíkem zadat jako URL na ftp a rpm automaticky balík stáhne. Některé volby pro instalci jsou tyto:

--nodeps ... nekontroluje závislosti na ostatních balících (některý balík například vyžaduje knihovy z jiného apod.)

--noscripts ... neprovede skripty označené jako skripty prováděné před instalací

--test ... jen otestuje činnosti při instalaci a ohlásí případné kolize

--percent ... hlasí kolik toho již nainstaloval

Vymazání balíku

Volby pro mazání jsou:

--nodeps ... vynechá kontrolu závislostí na ostatních balících, může tedy smazat nějakému balíku komponenty, které nutně potřebuje pro svou činnost

--noscripts ... neprovede skripty označené jako skripty prováděné po smazání

--test ... jen testuje, coby se stalo, kdyby skutečně balík smazal (nejčastěji porušení závislostí)

Dotaz na balík

Slouží k zjištění balíku(-ků) splňujících nějakou podmínku zadanou v query options. Ty mohou obsahovat:

-a ... všechny balíky

-whatrequires <capability> ... balíky vyžadující danou schopnost pro svou činnost

-whatprovides <capability> ... balíky mající danou schopnost

-f <file> ... balík vlastnící zadaný soubor

-i ... vypíše informace o balíku

--requires ... balíky, na kterých zvolený balík závisí

--provides ... schopnosti, které zadaný balík má

Dále lze několika volbami řídít data, která vám dotaz vrátí. Nejzajímavější jsou -l pro seznam souborů a --dump vypisující veškerou informaci o balíku.

Ověření stavu balíku

Porovnává informaci o balíku z původního souboru s informací v databázi instalovaných balíků. Pro každý soubor vytiskne řádku obsahující řetězec, který je složen z některých z osmi znaků popsaných dále, a jméno souboru. Jednotlivé znaky vyjadřují stav různých atributů souboru:

Znak Chyba v Znak Chyba v
5 součtu MD5 D zařízení
S velikosti souboru U jménu vlastníka
L simlinku G skupině vlastníka
T čase poslední madifikace M přístupových právech a typu souboru

Stavba balíku

Zde je důležté uvést jméno souboru obsahujícího specifikaci budovaného balíku, protože je v něm popsána přesná struktura budoucího balíku. Komentovaný příklad specifikace. Přesná činnost tohoto módu rpm je dána písmenem zapsaným na místo otazníku v příkazové řádce:

-bp ... provede část specifikačního souboru označenou %prep

-bl ... kontroluje, zda existují soubory určené ve specifikaci

-bc ... provede část specifikačního souboru označenou %build (předpokládá provedení části %prep)

-bi ... provede část specifikačního souboru označenou %install (předpokládá provedení části %build)

-bb ... vytvoří binární balík určený k distribuci (RPM)

-ba ... vytvoří binarní balík (RPM) a balík obsahující zdrojový kód programu (SRPM)

Dalšími volbami jsou --clean, kdy po sobě rpm uklidí zdrojové soubory apod., --test, pro otestování správnosti specifikačního souboru, a --sign, pro podepsání balíku.


Podepsání balíku

Tento postup je používán pro ověření původu a konzistence balíku. K podepisování se v současné době používá pouze podpis pomocí PGP klíče, na dalších možnostech se pracuje. Pro správnou funkci podepisování musíte nastavit správně následující věci v rpmrc:

pgp_path ... pokud nechcete používat cestu z $PGP_PATH

signature ... typ podpisu, zatím bohužel pouze PGP

pgp_name ... jméno podpisu, který má být použit k podepsání

Využití FTP

Při zadávání jména balíku můžete uvést i URL ve tvaru:

což bude mít za následek to, že rpm předtím, než s balíkem začne pracovat, stáhne jej přes FTP. Vynecháte-li heslo, budete na něj dotázáni, vynecháteli i jméno, použije rpm uživatele anonymous. Pomocí voleb --ftpproxy a --ftpport můžete modifikovat chování rpm při spolupráci s FTP serverem.


Autor: Dušan Dědeček
E-mail: Dusan.Dedecek@st.mff.cuni.cz
Home page: http://www.ms.mff.cuni.cz/~dded3180