tučňák
Vybrat další barevné schéma
VýchozíZelenýModrýČernýZlatý
opona
opona

google


Balíčkovací systém Mandrake Linuxu

Jak se neztratit v záplavě balíčků a závislostí? Tento článek vám poskytne jednoduchý návod k nastavení a používání systému urpmi.

  1. Úvod
  2. Nástroje balíčku urpmi
  3. Nastavení aktualizací z internetu
  4. Práce s balíčky
  5. Přehled nejpoužívanějších příkazů
1. Úvod

Zjistil jsem, že spousta uživatelů si myslí o mé oblíbené distribuci Linuxu mnoho nepřesností. Třeba to, že se jedná o klikací distribuci a že pro skutečné linuxáky to není to pravé. Pokusil bych se vyvrátit tuto domněnku o balíčkovacím systému Mandraku. Dle mého názoru je téměř stejně kvalitní jako např. v distribuci Debian. Právě debianisté si myslí o svém balíčkovacím systému, že je jediný a nenahraditelný, a proto o distribucích jako Mandrake vůbec nechtějí slyšet. Pokud máte nějakého kamaráda debianistu a ten, když viděl váš Mandrake, začal mluvit něco o tom, že si tam máte dát radši Debian, že apt-get rulezzz a podobné hlášky, určitě pokračujte v čtení.

Distribuce Mandrake vychází původně z distribuce Red Hat. S tím souvisí používání balíčků typu RPM. Ovšem kromě standardního nástroje pro práci s balíčky (rpm) nabízí i vlastní - urpmi (pro debianisty: je to něco podobného jako apt). Balíčky RPM kromě vlastního programu obsahují informace o závislostech na jiných balíčcích, ať jde o celé programy nebo jen o knihovny, např. xmms-plugins závisí na balíčku xmms. Když potom chceme nainstalovat balíček xmms-plugins, napíšeme na příkazové řádce pouze urpmi xmms-plugins, urpmi provede následující:

  1. zjistí, zda již není nainstalován
  2. zjistí, zda požadovaný balíček existuje v seznamu dostupných balíčků
  3. zjistí, zda jsou splněny všechny závislosti, které balíček vyžaduje; pokud ne, automaticky vybere všechny potřebné balíčky, zobrazí nám jejich seznam a nabídne instalaci
  4. nainstaluje balíček z nějakého dostupného zdroje (internet, CD, ...)

Jednoduché, že? :) Ovšem to není všechno, také bychom potřebovali stahování nového seznamu balíčků z internetu, umožnit upgrade jednotlivých balíčků na novější verzi, odstranění balíčku, zobrazení informací o balíčcích, seznam nainstalovaných balíčků atd. Můžete si i vybrat, zda toto budete dělat v grafice nebo v konzoli. Tedy nic nám nebrání nasadit Mandrake i na serveru. A nyní jak na to. Uvedu vždy postup v grafice a pak na konzoli.

2. Nástroje balíčku urpmi
urpmi instalace a upgradování balíčků
urpmq dotazování se na informace o balíčcích (i nenainstalovaných)
urpmf vyhledávání souborů v balíčcích (i nenainstalovaných)
urpme odstranění balíčku
urpmi.update stahování nového seznamu balíčků
urpmi.addmedia
urpmi.removemedia
manipulace s databází zdrojů balíčků
Soubory související s urpmi
  • /etc/urpmi/urpmi.cfg - nastavení zdrojů balíčků
  • /etc/urpmi/skip.list - názvy balíčků, které by neměly být automaticky aktualizovány (lze použít i regulární výraz)
  • /etc/urpmi/inst.list - názvy balíčků, které by měly být instalovány a ne aktualizovány, typicky balíčky jádra
  • /etc/urpmi/parallel.cfg - aliasy (skupina obsahující nody) v případě používání urpmi na clusteru
  • /var/lib/urpmi/list.* - seznam všech balíčků známých programu urpmi a jejich umístění
  • /var/lib/urpmi/hdlist.* - informace o všech známých balíčcích, obsahuje souhrn hlaviček RPM balíčků
  • /var/lib/urpmi/synthesis.hdlist.* - informace syntézy o všech známých balíčcích, které jsou sestaveny ze souboru hdlist a které mohou být použity pro urychlení zpracování vašich požadavků
3. Nastavení aktualizací z internetu

a) Pokud jsme za proxy, nastavíme pomocí nástroje Mandrake Control Center (drakconf, příp. přímo drakproxy) správně adresu proxy serveru, např. http://proxy.domena.cz:3128 (také lze z příkazovky pomocí export http_proxy="http://proxy.domena.cz:3128"). Nyní můžeme spustit nástroj Mandrake Update (z příkazovky překvapivě MandrakeUpdate). Po spuštění nám nabídne stažení seznamu zrcadel (mirrorů) s balíčky. Z českých obsahuje linux.redbox.cz. Můžete použít toto zrcadlo, ale ukážeme si ještě, jak přidat jiné zrcadlo a jak bývají organizována zrcadla Mandraku a naučíme se nastavit libovolný mirror.

obrazek

Nastavení zdrojů

b) Pomocí cat /etc/urpmi/urpmi.cfg zobrazíme používané zdroje (resp. urpmq --list-media). Záznam zdroje vypadá nějak takhle:

main ftp://linux.redbox.cz/Mandrake/9.2/i586/Mandrake/RPMS {
  hdlist: hdlist.main.cz
  with_hdlist: ../base/hdlist.cz
  key-ids: 70771ff3
  update
}
  • main - název zdroje, adresa za ním je absolutní cesta na FTP k balíčkům RPM
  • hdlist - název souboru hdlist.* na vašem disku
  • with_hdlist - relativní cesta k hdlist souboru
  • key-ids - identifikátory povolených GPG klíčů pro podepisování balíčků (70771ff3 patří MandrakeSoftu)
  • update - používání pro update, objeví se pak v grafickém nástroji MandrakeUpdate
4. Práce s balíčky
Instalujeme balíček

a) V ovládacím centru zvolte "Instalovat nové balíčky", spustí se nástroj rpmdrake. Zde si vyberete balíček, který chcete instalovat, a kliknete na "Instalovat" :).

b) V konzoli napíšete urpmi jmeno_balicku. Pokud jste nenapsali přesné jméno balíčku, nástroj urpmi se pokusí najít nejpodobnější název balíčku a nainstaluje ho. Pokud vašemu požadavku odpovídá více balíčků, vypíše jejich seznam. Samozřejmostí je řešení závislostí mezi balíčky. Občas nastává problém s podpisy balíčků, hlavně ze zdroje contrib. Pokud nechcete být obtěžováni hláškami o chybějících podpisech balíčků, přidejte si do souboru /etc/urpmi/urpmi.cfg následující, ale upozorňuji, že se jedná o bezpečnostní riziko:

{
  verify-rpm: 0
  split-length: 0
}
Upgradujeme systém

Nejprve si stáhneme aktualizovaný seznam balíčků pomocí urpmi.update -a. Parametr -a znamená aktualizovat všechny nevyjímatelné zdroje. Upozorňuji, že seznam balíčků bývá poměrně velký soubor, cca 20MB. Nyní můžeme použít příkaz urpmi --auto --auto-select, ale doporučuji nejdříve přidat do souboru urpmi.cfg položku "split-length: 0", všechny potřebné balíčky se stáhnou najednou a až poté se spustí jejich hromadná instalace. Nezapomeňte si před spuštěním příkazu udělat na disku dostatek místa, jinak může být instalace přerušena. Balíčky se stahují do adresáře /var/cache/urpmi/rpms.

Dotazujeme se na balíčky

Často nevíme, jak se námi požadovaný balíček jmenuje, nebo chceme zjistit, co daný balíček obsahuje. K tomu použijeme příkaz urpmq. Např. urpmq -y xmms vypíše všechny balíčky obsahující xmms v názvu nebo v popisu (použije se fuzzy vyhledávání). Dotazování funguje i na nenainstalované balíčky. Informace o balíčku xmms dostaneme pomocí příkazu urpmq -i xmms.

  • výpis všech balíčků, které jsou k dispozici: urpmq --list
  • výpis zdrojů: urpmq --list-media
  • -d - výpis závislostí balíčku
  • -f - výpis balíčků včetně verze a architektury
Odebíráme balíčky
urpme jmeno_balicku
Zjištění v jakém balíčku se nachází soubor
urpmf /usr/bin/xmms

Pozn.: Funguje i pro nenainstalované balíčky.

bash-completion

A nyní ještě finta, jak si usnadnit práci s příkazy urpm*. Jistě znáte doplňování jmen souborů na příkazovém řadku Bashe pomocí klávesy Tab. Pak byste jistě uvítali doplňování jmen balíčků. Pro funkci stačí doinstalovat balíček bash-completion a znovu se přihlásit. Nyní když napíšete urpmi xmms a stisknete Tab, vypíše se seznam balíčků začínajících xmms.

RPM

Kromě všech uvedených příkazů můžete samozřejmě používat také příkaz rpm. Ukážeme si tedy ještě několik příkazů, které nám chybí v urpmi, ale zvládne je rpm.

rpm -qa seznam nainstalovaných balíčků
rpm -qa | grep vzor dotaz na nainstalované balíčky, jejichž jméno se podobá vzoru
rpm -ql jmeno_balicku seznam souborů, které obsahuje nainstalovaný balíček
rpm -qf jmeno_souboru zjistí, kterému balíčku patří zadaný soubor
5. Přehled nejpoužívanějších příkazů
urpmq --list-media vypíše seznam zdrojů balíčků
urpmi.addmedia <nazev> typ://server/cesta_k_balickum with <relativni_cesta_k_hdlist> -cf přidání zdroje balíčků
urpmi.removemedia <nazev> odebrání zdroje balíčků
urpmi.update -a stáhne nejnovější seznamy balíčků ze všech nevyjímatelných zdrojů
urpmi --auto --auto-select upgrade systému dle staženého seznamu balíčků
urpmi <jmeno_balicku> nainstaluje balíček daného jména
urpme <jmeno_balicku> odebere balíček zadaného jména
urpmq -y <text> seznam balíčků obsahující v názvu zadaný řetězec
urpmq -i <jmeno_balicku> zobrazí informace o balíčku
urpmf <jmeno_souboru> vypíše balíčky obsahující zadaný soubor (i nenainstalované)
urpmq -f <jmeno_balicku> vypíše verzi, vydání a architekturu
urpmq -fd <jmeno_balicku> vypíše závislosti včetně verze, vydání a architektury

 
Pocet navstev: 110827