Portál AbcLinuxu, 6. května 2025 04:32
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.
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í:
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.
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 |
manipulace s databází zdrojů balíčků |
/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ů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.
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 {
|
main
- název zdroje, adresa za ním je absolutní cesta na FTP k balíčkům RPMhdlist
- název souboru hdlist.*
na vašem diskuwith_hdlist
- relativní cesta k hdlist souborukey-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 MandrakeUpdateV příloze článku naleznete přehled nastavení vybraných zrcadel v ČR a potřebné příkazy pro nastavení těchto zdrojů. Nyní si uvedeme postup pro přidání zdrojů Mandrake Linux 9.2 ze serveru ftp.linux.cz. Po připojení se k serveru a prozkoumání adresářové struktury zjistíme, že základní balíčky se nachází v adresáři ftp[...]pub/linux/mandrake/9.2/i586/Mandrake/RPMS
. Seznamy balíčků se obvykle nachází od tohoto adresáře v relativní cestě ../base/hdlist.cz
. Následuje přehled použitých adresářů:
ftp.linux.cz | ||
typ balíčků | cesta k balíčkům | cesta k seznamu balíčků |
---|---|---|
main | ftp[...]/mandrake/9.2/i586/Mandrake/RPMS |
../base/hdlist.cz |
contrib | ftp[...]/mandrake/9.2/i586/Mandrake/RPMS2 |
hdlist.cz |
JPackage.org* | ftp[...]/mandrake/9.2/i586/Mandrake/RPMS3 |
hdlist.cz |
updates | ftp[...]/mandrake/updates/9.2/RPMS |
../base/hdlist.cz |
Nastavení výše uvedeného můžete docílit posloupností příkazů:
urpmi.addmedia main ftp[...]/mandrake/9.2/i586/Mandrake/RPMS with ../base/hdlist.cz -cf
|
Kromě stabilní verze Mandrake Linuxu existuje také vývojová větev, kde jsou k dispozici novější verze programů a je zde možno vidět, jak bude pravděpodobně vypadat příští verze. Pokud máte pevné nervy a vyhovující internetové spojení, můžete tuto verzi zkusit, ale ne vždy v ní funguje všechno tak, jak má.
ftp.linux.cz (cooker) | ||
typ balíčků | cesta k balíčkům | cesta k seznamu balíčků |
---|---|---|
cooker-main | ftp[...]/mandrake-devel/cooker/i586/Mandrake/RPMS |
../base/hdlist.cz |
cooker-contrib | ftp[...]/mandrake-devel/contrib/i586 |
synthesis.hdlist |
urpmi.addmedia cooker-main ftp[..]/mandrake-devel/cooker/i586/Mandrake/RPMS with ../base/hdlist.cz -cf |
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:
{
|
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
.
Č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
.
urpmq --list
urpmq --list-media
-d
- výpis závislostí balíčku-f
- výpis balíčků včetně verze a architekturyurpme jmeno_balicku
urpmf /usr/bin/xmms
Pozn.: Funguje i pro nenainstalované balíčky.
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
.
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 |
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 |
Kvůli velké šířce tabulek s přehledem adres zrcadel byl seznam zařazen na samostatnou stránku. Najdete jej zde.
# urpmf /bin/sh syntax error in config file at line 2Na radku dve je prave skip-length:0 Pak, urpmi nema zadnou direktivu, ktera vypise verzi (jako treba --version). Pomoci rpm -qa jsem zjistil, ze mam toto: urpmi-4.2-34.1mdk
instalovat urpmi pod Redhat?
Používal jsem dříve Mandrake a urpmi mi velmi vyhovoval. Před půl rokem jsem přešel na instalaci Redhat 9.0. Jejich systém balíčků je - jak to říct? - poněkud nedotažený. Rpm tam samořejě funguje bez problémů, ale není tak šikovný, jako urpmi. Někdo tady vzpomínal yum. Co to žere a kolik to má noh? Je to porovnatelné s urpmi?
Je třeba nejprve aktualizovat aplikaci Rpmdrake nebo jednu z jejich prioritních závislostí. Aplikace Rpmdrake se poté restartuje.Nešlo tedy nic instalovat. Nástroj urpmi, ale fungoval. Zkusil jsem postupně:
urpmi.update -a urpmi --update --auto --auto-selectčímž jsem zaktualizoval databázi a měly by se teoreticky stáhnout aktualizace.
urpmi rpmdrake urpmi mdkonlineOboje jsem měl aktuální, takže ani toto nepomohlo.
for x in `urpmq -d rpmdrake`;urpmi $x; donePo půlhodině aktualizací začal rpmdrake fungovat správně.
Malá poznámka: pozoruju jinou syntaxi u urpmi.addmedia u MDV2008 a MDV2008.1. (Na easyurpmi.zarb.org nešlo jen mechanicky kopírovat )
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.