|
|
||||||||||||
| Home | Mandriva Linux | Ukázky | Kde získat | Podpora | Fórum | Wiki | Kontakty | RSS | Přihlásit | Registrovat | |||||||||||
Obsah
INSTALACE SOFTWARE V SYSTÉMU URPMIÚVOD - aneb proč nepoužívat rpm
Pro správu balíčků (instalace, deinstalace, reinstalace, vyhledávání, vypisování vlastností atd) a pro správu zdrojů balíčků je v Mandriva Linuxu systém urpmi.
nenainstaluje, ale systém zahlásí první nalezený nedostatek - chybějící knihovnu libabcd. Provedete tedy prohlídku internetu, naleznete požadovanou knihovnu, stáhnete si ji do počítače a zadáte:
Když budete mít štěstí (ale moc s tím nepočítejte), knihovna libabcd nebude vyžadovat jiný balíček. Takže sláva, budeme pokračovat v instalaci programu1:
a vyskočí hláška, že je zapotřebí libabdc. A kolečko začíná nanovo.
Pochopitelně že lze zjistit např. příkazem rpm -q jmeno_balicku –whatrequires všechny závislosti a potřebné balíčky si instalovat, ale i tak to někdy bývá téměř nekonečné, protože totéž musíte udělat pro:
Tomu se říká „dependecy hell“, neboli peklo závislostí. Řešení závislostí s urpmi
Systém urpmi na to jde jinak. Stáhne si z internetu soubor, který obsahuje jména balíčků a některé další informace, vytvoří si z těchto dat indexy a pak pracuje s těmito soubory. Pokud hledáte informace o nějakém balíčku, urpmi se podívá právě sem a dodá odpověď. InstalacePokud instalujete program1 pomocí urpmi
urpmi se ozve, a je několik možností:
program11 Aby byly splněny závislosti, budou nainstalovány následující balíčky Balíček Verze Vydání Arch.\\ (zdroj "Official Contrib Release")\\ libabcd R11B 11mdv2008.0 i586\\ libabdc R11B 11mdv2008.0 i586\\ Bude použito 13MB dodatečného diskového prostoru.\\ Pokračovat v instalaci 2 balíčků? (A/n)\\ \\ - Žádný balíček s názvem program1
Jednoduše reagujete podle okolností. Je ovšem zapotřebí chápat některé souvislosti. Možné problémy
Pokud tedy nejde nainstalovat nějaký program, který v repozitáři (seznamu balíčků) určitě máte, zkontrolujte si:
a pak to zkuste znovu. Chybová hlášení a co s nimi
Nejde spustit program. Na rozdíl od Windows máte možnost spustit program z Konzoly (obvykle menu Systém-Konzole, nebo Emulátor terminálu ap.), což je takové to černé okénko:
bash-3.2$ kmixer bash: kmixer: command not found bash-3.2$ A nyní vidíte, proč se program nespustil: v systému není přítomen (není nainstalován) Programy vypisují při svém spuštění všechny možné druhy informací, ale zejména jsou důležité případné chybové hlášky, které umožňují identifikovat problém a najít řešení. (tohle si ve woknech neužijete) bash: prikas: command not foundJedna z nejčastějších hlášek, které vídá i zkušený uživatel. Po zadání příkazu prikas dostanete tuto hlášku: [petos@Lizard ~]$ prikas bash: prikas: command not found případně česky: [petos@Lizard ~]$ prikas bash: prikas: příkaz nenalezen Systém zde říká: bash: prikas: příkaz nenalezen Co je špatně? Nejspíše překlep (příkaz se píše se z ne s). Řešením tedy je:
urpmf --files prikas balicek:/usr/bin/bin Textový řetězec na začátku řádku před dvojtečkou je název balíčku, ve kterém se soubor nachází. V tomto případě je to balíček balicek. Nyní uvedený balíček nainstalujeme buď pomocí ovládacího centra, nebo příkazem urpmi z Konzoly: urpmi balicek Některé příkazy jsou poměrně dlouhé a tak se snadno může udělat překlep. Linux má proti tomu jednoduchou obranu: po napsání několika prvních znaků stisněte klávesu Tab a název se doplní, případně se vypíšou dostupné možnosti: bash-3.2$ fir /ZDE JSEM STISKL TAB/ fire firefox /JSOU DOSTUPNÉ DVA PROGRAMY - FIRE A FIREFOX/ bash-3.2$ fire /PÍSMENO "E" SE DOPLNILO AUTOMATICKY/ bash-3.2$ firef /DOPLNIL JSEM PÍSMENO "F" A ZNOVU STISKL TAB/ bash-3.2$ firefox a nyní stačí příkaz odeslat klávesou Enter a příkaz se spustí. Rozšířené možnosti doplňování zajistí balíček bash-completion (pro nainstalování zadejte: urpmi bash-completion). cannot open shared object file: No such file or directoryPotřebný soubor neexistuje. Pravděpodobně v systému chybí nějaký balíček, takže bude potřeba ho doinstalovat. Konkrétní příkaz zdiskuzního fóra: program se mi vůbec nespustí. Vypíše to tohle [martin@localhost ~]$ epsxe /home/martin/.epsxe/epsxe: error while loading shared libraries: libgtk-1.2.so.0 : cannot open shared object file: No such file or directory Dotyčnému chybí v systému soubor libgtk-1.2.so.0. Je to proto, že spouštěný program nebyl instalován systémem rpm a tudíž nejsou zajištěny příslušné závislosti. Dá se to ale celkem snadno dořešit. Nejprve musíme zjistit, ve kterém balíčku se soubor libgtk-1.2.so.0 nachází: bash-3.2$ urpmf --files libgtk-1.2.so.0 libgtk+1.2:/usr/lib/libgtk-1.2.so.0 libgtk+1.2:/usr/lib/libgtk-1.2.so.0.9.1 bash-3.2$ Textový řetězec na začátku řádku před dvojtečkou je název balíčku, ve kterém se soubor nachází. V tomto případě je to balíček libgtk+1.2. Nyní uvedený balíček nainstalujeme buď pomocí ovládacího centra, nebo příkazem urpmi z Konzoly: urpmi libgtk+1.2 Po nainstalování znovu zkuste spustit problémový program. Pokud se rozeběhne, je vyhráno (v uvedené diskuzi to stačilo), pokud ne, najdete ve výpisu v konzoli další příčinu (možná další chybějící soubor). V takovém případě postupujte podle obsahu chybového hlášení. Deinstalace
Obdobným způsobem pracuje urpme, tedy příkaz z rodiny urpm* používaný pro odinstalování balíčků.
vygeneruje zprávu: Aby byly splněny závislosti, budou odebrány 2 balíčky (13MB):\\ program1.0.12.3.2008.1.i586 libabdc1.0.12.3.2008.1.i586 (z důvodu chybějícího libabcd1.0.12.3.2008.1.i586) Odstranit 3 balíčky? (a/N)
a pokud zadáte a <enter>, máte v systému čisto jak od libabcd, tak od programu1, který by zůstal bez knihovny nefunkční, tak i od další závislé knihovny libabdc. Pokud je ovšem knihovna libabdc potřeba ještě pro program11, který zůstal nainstalovaný, odinstalována nebude. Možné problémyPříliš mnoho závislých balíčků
- Nestává se to až tak často, ale některé programy či knihovny jsou skutečně klíčové pro celý systém, nebo jeho část (např. zvukovou, grafickou ap.), takže s jeho odstraněním by se stal systém v podstatě nefunkčním. ŘEŠENÍ: neodinstalovávat.
a vzápětí nainstalovat požadovanou verzi:
Jde to i jednodušeji, jedním příkazem, který natvrdo přepíše nainstalovaný balíček jiným, který požadujeme:
a je to. (před parametrem allow-force jsou DVĚ pomlčky; tyhle stránky je vymění za jednu dlouhou) Některé balíčky nenalezeny
Nebudu vám šahat do svědomí, co jste to se systémem prováděli, ale pokud se to stane (a nemusí to být nezbytně vaší vinou), pak je asi nutné provést obnovu indexu nainstalovaných souborů:
provede kontrolu všech nainstalovaných balíčků, případně (hlásí-li množství chyb):
provede obnovu databáze nainstalovaných balíčků. Dělení repozitářů
Seznamy balíčků nejsou jedním seznamem, ale jsou rozděleny do několika druhů seznamů: Další informace:
|
Mandriva Wikisystem/prikazovy_radek/instalace.txt · Poslední úprava: 2011/01/05 16:54 autor: yullaw
|
|||||||||||
| © 2001 – 2010 QCM, s.r.o., ISSN 1801-3988, obsah spravuje Liberix, o.p.s. Používáme Wordpress, DokuWiki a SMF. | ||||||||||||