Portál AbcLinuxu, 25. dubna 2024 15:09

Balíčkovací systém Mandrake Linuxu

16. 1. 2004 | Martin Fiala
Články - 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ů
  6. Nastavení vybraných zrcadel v ČR

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

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.


Nastavení zdrojů


Přidání nového zdroje

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
}

V 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
*) Viz http://jpackage.org/about.php.

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
urpmi.addmedia contrib ftp[...]/mandrake/9.2/i586/Mandrake/RPMS2 -cf
urpmi.addmedia JPackage ftp[...]/mandrake/9.2/i586/Mandrake/RPMS3 -cf
urpmi.addmedia --update updates ftp[...]/mandrake/updates/9.2/RPMS with ../base/hdlist.cz -cf

Mandrake Cooker

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

skript:

urpmi.addmedia cooker-main ftp[..]/mandrake-devel/cooker/i586/Mandrake/RPMS with ../base/hdlist.cz -cf
urpmi.addmedia cooker-contrib ftp[...]/mandrake-devel/contrib/i586 -cf

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" :).


Instalace nových balíčků

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.

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

6. Nastavení vybraných zrcadel v ČR

Kvůli velké šířce tabulek s přehledem adres zrcadel byl seznam zařazen na samostatnou stránku. Najdete jej zde.

Související články

Na co se často ptáme: Balíčkovací systémy
Balíčkovací systém Gentoo Linuxu - I
Balíčkovací systém Gentoo Linuxu - II
Mandriva Linux 2006 CZ
Mandrakelinux 10.1 CZ Pack
Mandrakemove 2 CZ
Mandrake Linux 9.2 GPL set
Mandrake 9.1 GPL set
Seriál: Instalace softwaru v Linuxu
Seriál: Gentoo ebuild
Seriál: Rukověť baliče RPM
Seriál: Balíčkovací systém Arch Linuxu
Smart Package Manager - instalujeme chytře
Zdroje balíčkov pre Ubuntu

Odkazy a zdroje

linux-mandrake.com: urpmi
urpmi.org: Easy urpmi config for Mandrake
urpmi mini-HOWTO

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.