Urpmi na maximum – instalace a odebrání balíčků

logo-mandrivaV prvním díle tohoto seriálu o nástroji urpmi jsme vysvětlili, k čemu je, jak vznikl a představili jednotlivé komponenty, ze kterých se urpmi skládá. V tomto díle vám ukážeme, jak pomocí urpmi nainstalovat balíček a jak jej odebrat.

Výhody urpmi oproti grafickému rozhraní

Grafické rozhraní balíčkovacího systému drakrpm má své výhody, ale konzolové nástroje také, a to hned v několika ohledech. Základní výhodou je velmi rychlé použití, zejména při základních operacích. Napsat urpmi nazev_balicku pro nainstalování příslušného softwaru je rozhodně nesrovnatelně rychlejší, než spouštět Ovládací centrum Mandriva Linuxu, v něm správce balíčků DrakRpm, čekat na načtení seznamu balíčků, zadávat vyhledávání, ve vyhledaných výsledcích vybrat, co chcete a klikat na Použít, pak čekat na vlastní instalaci a opětovné načítání seznamů balíčků…

Další výhodou jsou daleko širší možnosti. Grafický správce balíčků se omezuje na různé možnosti řazení balíčků. Pokud chcete něco speciálnějšího (například instalovat balíček z konkrétního repozitáře a nespočet jiných akcí), musíte použít konzolové urpmi.

Pomocí urpmi můžete také pracovat s balíčky, které si uložíte někam na disk. S nimi grafické rozhraní nepracuje vůbec.

Při práci s urpmi není zapotřebí funkční grafické rozhraní. Jinými slovy urpmi pracuje i v případě problémů s hardwarem (např. nesprávně nastavený ovladač grafické karty) nebo u minimálních instalací (serverové konfigurace).

Mezi velmi pokročilé výhody urpmi oproti grafickému rozhraní DrakRpm je možnost automatizace některých procedur pomocí skriptů.

Urpmi bylo navrženo tak, aby nejčastěji používané příkazy byly co nejjednodušší, ale v případě potřeby byla možnost použít i parametry řešící méně časté požadavky. Je pochopitelné, že nejčastější požadavky se týkají instalace a odebrání balíčků.

Povšimněte si, že instalace či balíčků či jejich odebrání je vyhrazeno správci systému, tedy uživateli root.

Instalace programu

Pro instalaci balíčku unrar si spusťte terminál a přihlaste se jako root, tedy správce systému, a napište

urpmi unrar

Po potvrzení klávesou [Enter] uvidíte

# urpmi unrar
rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2009.1/i586/media/non-free/release/unrar-3.80-2mdv2009.1.i586.rpm
instaluji unrar-3.80-2mdv2009.1.i586.rpm z /var/cache/urpmi/rpms
Připravuji...                    #############################################
      1/1: unrar                 #############################################

V tomto příkladu není uvedeno celé jméno balíčku (chybí část od první pomlčky do konce názvu. Nainstaluje se balíček, který odpovídá zadanému jménu z preferovaného repozitáře. Pokud používáte standardně jen systémové repozitáře. Repozitáře lze seřadit podle vlastních požadavků a prohledávají se postupně od prvního k poslednímu.

Balíček unrar, uvedený v příkladě, je vybrán z několika důvodů. První je jeho nezávislost na dalších balíčcích, tedy nebudete spolu s ním instalovat žádný další balíček. Druhý důvod je také praktický – tento balíček je nutný pro práci s archivy rar, které jsou velice běžné. Mezi další balíčky pro práci s archivy je možné doporučit unarj, unzip či unace.

Mandriva Linux má ještě jednu velmi praktickou vlastnost. Pokud si nainstalujete balíček bash-completion, pak se vám velmi usnadní práce se systémem urpmi. Při instalaci balíčku zadáte jen část názvu, stisknete klávesu [Tab] a z databáze balíčků se doplní – resp. nabídnou – názvy balíčků, které začínají stejným řetězcem. Případ, kdy budete instalovat složitější program, závislý na více balíčcích, si ukážeme na SMPlayeru, což je výkonný přehrávač. Zároveň se zde projeví funkce bash-completion.

urpmi smpl

Stiskněte [Tab] a vypíše se:

  smplayer smplayer-themes

a zároveň se v příkazovém řádku doplní příkaz o společnou část názvu:

urpmi smplayer

Nyní si můžete vybrat, které balíčky chcete nainstalovat (doplněním dalšího znaku či znaků do příkazu), případně parametrem -a říci systému, že chcete všechny, které uvedený řetězec obsahují:

urpmi smplayer -a

Systém urpmi se již na nic nebude ptát a nainstaluje všechny balíčky, kterých se výběr týká.

Závislost balíčku mohou někdy splňovat dva nebo více různých balíčků. Stává se to v jednak případech, kdy obsahují stejný, instalovaným balíčkem vyžadovaný soubor, nebo zajišťují stejnou funkcionalitu. Dále se to může vyskytnout v situacích, kdy lze do systému doplnit různé verze nějaké knihovny atd.. Systém nedělá rozhodnutí za vás, ale dá vám možnost volby:

urpmi smpl -a
Aby byly splněna závislost 'devel(libglut)', je třeba jeden z následujících balíčků:
 1- libmesaglut3-devel-7.0.4-1mdv2009.0.i586: Vývojové soubory pro glut knihovny (k instalaci)
 2- freeglut-2.4.0-1.i586: A freely licensed alternative to the GLUT library (k instalaci)
Jaká je vaše volba? (1-2)

Stiskem příslušné klávesy ([1] nebo [2]) si zvolíte, jaký balíček se nainstaluje. Instalaci můžete kdykoli stopnout klávesovou zkratkou [Ctrl+c].

Výhodou oproti grafickému rozhraní je jednoznačně rychlost. Databáze se nenačítají do paměti, není zapotřebí zobrazovat seznamy balíčků podle předvolených kritérií jako to dělá grafické rozhraní. Prostě zadáte příkaz urpmi název_balíčku a je to.

Odinstalování téhož programu

 urpme smplayer
Aby byly splněny závislosti, budou odebrány 2 balíčky (8.9MB):
  smplayer-0.6.7-2009.1mdv2009.1.i586
  smplayer-themes-0.1.19-1mdv.2009.1.noarch
   (z důvodu chybějícího smplayer)
Odstranit 2 balíčky? (a/N)

Jak vidíte, opět není zapotřebí používat celé jméno balíčku. Pokud se nenajdou žádné závislé balíčky, systém požadovaný balíček rovnou odstraní. V dotazech platí, že velké písmeno je předvolená možnost. V tomto příkladu (a/N) po stisknutí klávesy [Enter] platí “N” – odstranění balíčků odmítnete. Pokud chcete volbu potvrdit, musíte použít klávesu [a].

Na konci odinstalace urpmi vypíše seznam balíčků, které se v systému staly sirotky. Sirotci jsou balíčky, o kterých se systém domnívá, že nejsou v systému zapotřebí a že je žádný jiný balíček pro svou funkci nepotřebuje. Příkaz pro jejich odstranění je

urpme --auto-orphans

Jde o relativně novou funkci (zavedenou ve verzi 2009.0). Dříve nebylo možné její používání s čistým svědomím doporučit. Stávalo se, že došlo k odstranění i některých potřebných balíčků a postižené programy či funkce přestávaly fungovat. Sledování “sirotků” bylo ve verzi 2009.1 vylepšeno.

Výhody při odinstalaci pomocí urpme oproti grafickému rozhraní (gurpmi) jsou obdobné jako u urpmi: rychlost, přehlednost a široké možnosti i řešení potíží.

4 komentáře

  1. Vlastimil Ott | 05.06.2009 | 11:55 | Odpovědět

    Já mám ještě zkušenost – aspoň doufám, že to tak je – že mezi sirotky jsou i balíčky, které prostě žádné závislosti nemají. Pokud nainstaluju takový samostatný balíček, na seznamu sirotků se ocitne velmi rychle. Typicky balíčky s plasmoidy, těch je tam dost.

    Čili by neměla vznikat představa, že jsou to balíčky zbytečné – pouze nemají závislost a jakmile je odstraníte, možná vám bude někde něco chybět…

  2. Hobil | 05.06.2009 | 22:46 | Odpovědět

    To platilo do vydání Mandrivy 2009. Ve 2009.1 jsou balíčky, které instalujete explicitně – např. “samostatné” knihovny, “ručně” instalované balíčky (např. urpmi smplayer z článku) nebo balíčky, které již nainstalované jsou, ale vy je znovu “instalujete” označeny jako “nesirotci”, tedy na seznam sirotků se již nikdy nedostanou.
    Mam-li na seznamu sirotků kuprikladu balicek python-curl, pak prikaz urpmi python-curl zpusobi:

    # urpmi python-curl
    Balíček python-curl-7.19.0-2mdv2009.1.i586 je již nainstalován
    Označuji python-curl jako ručně instalovaný, nebude pak automaticky považován za sirotka
    writing /var/lib/rpm/installed-through-deps.list

    Samotny vypis sirotků zajisti prikaz urpmq –auto-orphans.
    H.

  3. Paul | 18.06.2009 | 10:36 | Odpovědět

    Pokud se mi omylem takhle povede označit balíček za ručně instalovaný, lze ho zase nastavit jako potencionálního sirotka ? Tedy kromě ruční editace /var/lib/rpm/installed-through-deps.list ?

  4. Ivan Bíbr | 18.06.2009 | 11:24 | Odpovědět

    >Pokud se mi omylem takhle povede označit balíček za ručně instalovaný, lze ho zase nastavit jako potencionálního sirotka ? Tedy kromě ruční editace /var/lib/rpm/installed-through-deps.list ?

    Myslím že ne, zbývá jedině editace. Když se zamyslíte nad tím, jaké možnosti se nabízí, tak je to asi logické, resp. nenapadá mne případ, kdy bych “náhodou označil” balíček, který nechci.

Leave a comment

Sorry, you must be logged in to post a comment. Login