Urpmi na maximum — Repozitáře a práce s nimi
Autor Hobil, 25. 6. 2009, Kategorie Nastavení systému, Návody
V minulém díle byly představeny základy práce se zdroji softwaru. Vysvětlili jsme, kde systém uchovává informace o nainstalovaných balíčcích, k čemu jsou repozitáře a jaké druhy repozitářů existují. V tomto díle se na repozitáře podíváme ještě jednou, a to konkrétně na to, jak urpmi pracuje se zdroji.
Seriál Urpmi na maximum
- Urpmi na maximum - historie a přehled příkazů
- Urpmi na maximum - instalace a odebrání balíčků
- Urpmi na maximum -- nastavení zdrojů softwaru
- Urpmi na maximum -- Repozitáře a práce s nimi
- Urpmi na maximum -- instalace softwaru
Jak urpmi pracuje se zdroji
Začněme s terminologií. Jako zdroj (či repozitář) bývá označován adresář, kde jsou umístěny rpm soubory. V tomto adresáři obvykle bývá podadresář jménem media_info, v němž se pak nachází další soubory:
- hdlist.cz binární (datový), komprimovaný (gzip), indexovaný (seřazený) seznam balíčků ve zdroji s informací o balíčku, jeho architektuře, verzi atd. Základní informace o balíčku. Používáno dříve, dnes udržován kvůli kompatibilitě s alternativními balíčkovacími programy (smart aj.);
- MD5SUM kontrolní součet celého adresáře;
- changelog.xml.lzma komprimovaný (LZMA) textový soubor o posledních změnách v balíčcích;
- files.xml.lzma formát jako changelog, obsahuje seznamy instalovaných souborů obsažených v jednotlivých balíčcích;
- info.xml.lzma, obdobné, obsahuje informace o zdrojových rpm (*.src.rpm), url výrobce, licence;
- pubkey veřejný klíč zdroje;
- synthesis.hdlist.cz základní soubor v media_info.
Soubor synthesis.hdlist.cz obsahuje ke každé položce (ke každému balíčku) následující informace:
- vyžadované balíčky (závislosti);
- velikost souboru;
- skupina, do které je balíček zařazen (např. System/Kernel) a ve které se zobrazuje ve správci balíčků;
- krátký popis (summary);
- velikost souboru;
- co poskytuje (co mohou vyžadovat jiné balíčky).
S tímto souborem pracuje urpmi lokálně; při aktualizaci zdroje si stáhne aktuální soubor synthesis.hdlist.cz do uživatelova počítače a v něm vyhledává balíčky a základní informace o nich. S informacemi o balíčcích lze tedy pracovat i po odpojení od internetu.
Soubory obsahující doplňkové informace (tedy ostatní výše uvedené *.lzma soubory) si urpmi stáhne jen v případě, že dotaz uživatele je možné zodpovědět pouze po nahlédnutí do tohoto souboru.
Můžete si to snadno vyzkoušet. Zkuste se podívat, jaké soubory obsahuje balíček mplayer:
# urpmq -l mplayer
$MIRRORLIST: media/main/release/media_info/20090424-151034-files.xml.lzma
/etc/mplayer
/etc/mplayer/menu.conf
/etc/mplayer/mplayer.conf
/usr/bin/midentify
/usr/bin/mplayer
/usr/share/doc/mplayer
.... (následují další soubory z balíčku mplayer)
Co se vlastně stalo? Systém urpmi zjistil, že požadovanou informaci nemá. Proto se podíval do svých záznamů, zjistil, ve kterém zdroji se balíček mplayer nachází, a z příslušného zdroje si stáhl soubor files.xml.lzma obsahující požadované informace. Vychází se z toho, že nemá smysl stahovat do počítače informace, které jsou zapotřebí jen výjimečně. V případě potřeby se příslušný (a aktuální) soubor stáhne a informace se v něm dohledá. Pokud je soubor již stažen, nic se samozřejmě stahovat nemusí.
Soubory s informacemi o balíčcích jsou nazývány v různých systémových nápovědách odlišně; někdy soubory se syntézou, jindy indexy a ještě jindy (nesprávně) databáze urpmi. Jediná databáze je databáze rpm a udržuje ji program rpm.; s xml soubory stahovanými z internetu souvisí jen nepřímo.
Předpoklady úspěšné instalace balíčku
Chcete-li instalovat nějaký balíček z internetového repozitáře, je potřeba mít funkční připojení k internetu, dále mít aktuální lokální soubor synthesis.hdlist.cz. Instalace balíčku (nebo závislých balíčků) může selhat, pokud je v repozitáři balíček novější verze, než je uvedeno v lokálním seznamu (synthesis.hdlist.cz). Balíčky totiž v celém názvu obsahují i číslo verze. Jména souborů pak nesouhlasí. Aktualizaci indexu (tedy stažení aktuálního souboru synthesis.hdlist.cz do vašeho počítače) zajistí příkaz urpmi.update nazev_zdroje a nebo pro všechny zdroje příkaz: urpmi.update -a.
Urpmi si stáhne z repozitáře nezbytný soubor synthesis.hdlist.cz, eventuelně i další *.xml.lzma soubory, přidá je do svých indexů a následně můžete s novým rpm souborem pracovat pomocí systému urpmi jak v grafické nástavbě (Drakrpm neboli gurpmi) tak pomocí konzolových příkazů urpmi.
Chci instalovat jen jeden balíček stažený z netu
Instalace je sice námět, který bude podrobně rozebírán příště, ale bude užitečné něco zmínit nyní, v souvislosti s právě probíraným účelem repozitářů a jejich indexů.
Instalaci jednoho rpm souboru, který jste si stáhli z internetu, lze zařídit pomocí příkazu urpmi tak, že jej spustíte v adresáři s balíčkem a jako parametr příkazu zadáte celé jméno včetně čísla verze a přípony rpm. Například mám na lokálním disku v adresáři /home/user/Dokumenty/mandriva_repo soubor lyx-1.6.0-1hbl2009.0.i586.rpm. Přesunu se do příslušného adresáře a napíšu:
urpmi lyx-1.6.0-1hbl2009.0.i586.rpm
Případné závislosti (balíčky) se stáhnou z ostatních repozitářů. Pokud jste stáhli nějaký balíček, využívající v závislostech další speciální balíčky od tvůrce programu, v distribučních zdrojích se pravděpodobně nenajdou. Budete je muset stáhnou také samostatně, nebo si přidejte všechny balíčky jako zdroj (pokud to server umožňuje – pokud obsahuje indexové soubory). Pokud ne, musíte je stáhnout všechny a v adresáři s balíčky zadáte příkaz:
urpmi *.rpm
Nainstalují se všechny rpm balíčky obsažené v adresáři. Pokud si nevytvoříte místní repozitář a zároveň nepoužijete celé jméno souboru, bude urpmi hledat balíček ve svých indexech a instalace skončí chybou. Instalací pomocí urpmi se informace o balíčku dostanou do databáze rpm a jsou využity např. při dalších instalacích (např. může zajišťovat pro jiné balíčky závislost), ke korektnímu odinstalování ap.


LINUXEXPRES
OPENOFFICE.ORG
MARWEL
SHOP
E-ZAK
QCM
LIBERIX