V RedHat Linuxu máte k dispozici promyšlený systém správy naistalovaného software. RPM (Redhat Package Managment) je vlastně batabází balíků, která udržuje informace o tom který balik je na kterém závislý (např. aplikace -- knihovna), k čemu je ten který balík vlastně dobrý, kolik zabírá místa na disku, kdo ho kde vyrobil, apod.
Způsobů jak s touto batabází pracovat je opět několik. Je zde příkaz
"rpm
" pro práci na příkazové řádce, ale existuje také veliká
spousta "přítulnějšich" nástrojů pro X Window (napři. přímo v RedHat distribuci
je aplikace Glint). Ovšem spoléhat se pouze na tyto nástroje
může být docela zrádné. Např. jak naistalujete nějakou Knihovnu
pro X Window
když umíte instalovat pouze s Nástrojem který ovšem vyžaduje právě onu
Knihovnu. Budeme se tedy věnovat jenom řádkové komunikaci pomoci
"rpm
"
Uvedeme pouze základní možnosti programu rpm, popis všech funkcí by zabral mnoho, mnoho, mnoho, mnoho, mnoho stran.
Balík je obvykle pojmenován nějak takhle: quake-1.07-1.i386.rpm
Kde:
quake | název balíku |
1.07 | číslo verze |
1 | číslo vydání (release) |
i386 | říká že je program pro platformu intel x86 |
instalace:
rpm -i balik.rpmodinstalování:
rpm -e balikpozn. 1:
Pokud je balík nainstalován můžete jeho jméno uvádět bud celé, tj. i s číslem verze a vydání (quake-1.07-1), nebo bez čísla (quake). Celé jméno musíte uvádět pouze v případě že je naistalovaných více verzí téhož balíku. |
Při instalaci balíku se kontroluje zda jsou nainstalované balíky na kterých je balík závislý (např. aplikace -- knihovny). Pokud balíky chybí, dotyčný balík se nenaistaluje, a rpm vám zdělí který balik ještě potřebujete
# rpm -i XaoS-3.0-1.i386.rpm chybné závislosti: libpng.so.0 je nutné pro XaoS-3.0-1Podobné kontroly se dělají při odinstalování balíku, ale naopak že. Nedovolí vám odistalovat balík na kterém závisí jiný balík.
# rpm -e aalib odstranění těchto balíčků by porušilo závislosti: libaa.so.1 je nutné pro aview-1.2-1Pokud jste jisti co děláte můžete rpm přepínačem nodeps říct aby tyto kontroly neprováděl a vše instaloval i odinstalovával bez ohledu na závislosti.
# rpm -i --nodeps XaoS-3.0-1.i386.rpmresp.
# rpm -e --nodeps aalibMůže také nastat situace že tentýž soubor je obsažen ve více balícich. Vznikají potom konflikty mezi balíky, a balík opět nelze nainstalovat (resp. odinstalovat). Pak můžete použít přepínač force donutit rpm aby balík naistaloval na tvrdo , toto ovšem dělejte pouze pokud OPRAVDU víte co děláte.
# rpm -i --force quake-1.07.i386.rpm
# rpm -q netscape-communicator netscape-communicator-4.07-1se dozvíme že balík netscape-communicator je naistalovaný a to ve verzi 4.07 vydání 1.
#rpm -qi netscape-communicatorA dozvíme se asi toto:
Name : netscape-communicator Distribution: Manhattan Version : 4.07 Vendor: Red Hat Software Release : 1 Build Date: St 7. říjen 1998, 02:14:28 CEST Install date: Pá 22. leden 1999, 14:27:32 CET Build Host: porky.redhat.com Group : X11/Applications/Networking Source RPM: netscape-4.07-1.src.rpm Size : 10227900 License: Commercial Packager : Red Hat Softwarenebo když potřebujete vědět které soubory balík obsahuje, stačí příkaz:Summary : Prohlížeč Internetu, diskusí a poštovní klient Netscape Communicator Description : Netscape Communicator je vedoucí prohlížecí program pro web. Podporuje ty nejnovější standardy pro HTML, Javu a JavaScript. Obsahuje také plně funkční prohlížeč diskusních skupin i úplného klienta eln. pošty.
# rpm -ql netscape-communicator /etc/X11/wmconfig/netscape-communicator /usr/bin/netscape-communicator /usr/lib/netscape/netscape-communicator
přepínače se dají samotřejmě všelijak kombinovat, např. příkaz
rpm -qai
vypíše info. o všech (přepínač a )
naistalovaných balících. A ve spojení s tradičními unixovými nástroji
pro práci s textem představuje rpm velice mocný nástroj pro správu
nainstalovaných balíků.
Pár tipů (pro unixu neznalé)
rpm -qa | grep quake vypíše celé jména všech balíků a příkaz grep vybere řádek ve kterém nalezne slovo "quake". Ideální když potřebujete zjistit jestli je balík vůbec naistalovaný. A nemusíte ani znát jeho celé jmeno (stačilo by i "qua") rpm -qa | grep X tak třeba zjistite všechny balíky které mají v názvu "X" rpm -qa | sort abecedně setříděný seznam všech balíků rpm -qi `rpm -qa | sort` popisky ke všem balíkům, v abecedním pořadí (znak ` je obrácený apostrof, klávesa pod Esc) rpm -ql `rpm -qa | sort` seznam souborů všech balíků, v abecedním pořadí rpm -qi `rpm -qa | grep ^X` informace o všech balících začínajících znakem "X"
rpm -příkaz [--přepínač] [balík]
q............
specifikuje dotaz, budeme se ptát a............
dotaz na všechny dalíky i............
vypíše popis balíku l............
vypíše soubory patřící k balíku i............
instalace balíku e............
odistalování balíku nodeps.......
vypíná kontroly závislostí force........
prováděná akce nebude brát na nic ohledy