Doplnění zdrojů balíčků

Stále se opakují dotazy, proč v Mandrivě Linuxu 2007.1 stažené z netu nejde nainstalovat to či ono, takže si myslím, ženebude od věci zde krátce vysvětlit, jak lze zdroje snadno doplnit. Určeno začátečníkům.

Nejprve proč to nejde:Balíčkovací systém má v počítači uloženou databázi informací o balíčcích. Jsou zde i informace, odkud je může získat, zpravidla je to nějaký archív na internetu. Po instalaci free verze nebudete mít v systému žádné zdroje softwaru nastaveny, nebude tedy ani vygenerována databáze a indexy, v nichž správce balíčků vyhledává, vypisuje informace a podle nichž stahuje a instaluje požadované balíčky/software včetně potřebných závislostí. Takže tenhle zádrhel odstraníme. Všechno se bude odehrávat v konzole, alespoň se něco naučíme. Nejprve však krátkou přípravu:

První možností je stáhnout si script pro nastavení zdrojů ze stránek pana Miroslava Cyroně http://mandrivalinux.ic.cz/ podle své architektury a verze Mandrivy. Uložte si ho například do adresáře /home/user/Dokumenty/zdroje/.

Panu Miroslavu Cyroňovi tímto děkuji, že jej dal na svých stránkách k dispozici 🙂 .

Pro Mandrivu 2007.1 i586 tento:
http://www.mandrivalinux.ic.cz/rpm/mdv-2007.0-1/i586/urpmi-internet-automatic-mdv-2007.1-cyron-1.2-2.i586.tar.gz

Pro Mandrivu 2007.1 64bit:
http://www.mandrivalinux.ic.cz/rpm/mdv-2007.0-1/x86_64/urpmi-internet-automatic-mdv-2007.1-cyron-1.2-2.x86_64.tar.gz

Script p. Cyroně má oproti následující variantě tu výhodu, že se vám zdroje balíčků nezdvojí, pokud již nějaké máte zavedeny, protože v prvním kroku odstraní stávající zdroje. Nicméně pokud by z nějakého důvodu nebyly uvedené stránky dostupné, zkuste se nejprve podívat na výše uvedenou adresu zda se při přestavbě webu jen nezměnil mnou uvedený odkaz. Pokud stránka opravdu nebude udržovaná, zkopírujte si např. do KWordu (v menu Kancelář – Textové procesory – KWord) následující text (pro verzi 2007.1, i586):

#!/bin/sh

urpmi.addmedia main ftp://ftp.mandrivauser.cz/Mandrivalinux/official/2007.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia –update main_updates ftp://ftp.mandrivauser.cz/Mandrivalinux/official/2007.1/i586/media/main/updates with media_info/hdlist.cz
urpmi.addmedia main_backports ftp://ftp.mandrivauser.cz/Mandrivalinux/official/2007.1/i586/media/main/backports with media_info/hdlist.cz
urpmi.addmedia contrib ftp://ftp.mandrivauser.cz/Mandrivalinux/official/2007.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia –update contrib_updates ftp://ftp.mandrivauser.cz/Mandrivalinux/official/2007.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia contrib_backports ftp://ftp.mandrivauser.cz/Mandrivalinux/official/2007.1/i586/media/contrib/backports with media_info/hdlist.cz
urpmi.addmedia –update non-free_updates ftp://ftp.mandrivauser.cz/Mandrivalinux/official/2007.1/i586/media/non-free/updates with media_info/hdlist.cz
urpmi.addmedia non-free_backports ftp://ftp.mandrivauser.cz/Mandrivalinux/official/2007.1/i586/media/non-free/backports with media_info/hdlist.cz
urpmi.addmedia –update plf-free ftp://ftp.mandrivauser.cz/plf/mandriva/2007.1/free/release/binary/i586/ with media_info/hdlist.cz
urpmi.addmedia plf-free_backports ftp://ftp.mandrivauser.cz/plf/mandriva/2007.1/free/backports/binary/i586/ with media_info/hdlist.cz
urpmi.addmedia –update plf-nonfree ftp://ftp.mandrivauser.cz/plf/mandriva/2007.1/non-free/release/binary/i586/ with media_info/hdlist.cz
urpmi.addmedia plf-nonfree_backports ftp://ftp.mandrivauser.cz/plf/mandriva/2007.1/non-free/backports/binary/i586/ with media_info/hdlist.cz

Na konci souboru nechte jeden řádek prázdný (odřádkovat enter) a uložte ho jako Prostý text

[V KWordu v menu File – Save as a dole u Filter vyberte Prostý text, a pod tím nechte zatržítko u Automatically select filename extension. Po výběru Prostý text by se tam měla objevit přípona .txt].

Soubor s názvem třebas urpmi-zdroje.txt uložíte např. do adresáře /home/user/Dokumenty/zdroje. Dále popisuji postup pro případ souborů stažených ze stránek p. Cyroně, ve druhé variantě budete postupovat obdobně, ale nebude nutné soubor vybalovat z archívu a zřejmě mu dáte nějaké jednodušší jméno.

Ještě uvedu variantu pro x86_64 (64bit. procesory):

#!/bin/sh

urpmi.addmedia main ftp://sun
site.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/official/2007.1/x86_64/media/main/release
with media_info/hdlist.cz
urpmi.addmedia –update main_updates ftp://sunsite.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/official/2007.1/x86_64/media/main/updateswith media_info/hdlist.cz
urpmi.addmedia main_backports ftp://sunsite.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/official/2007.1/x86_64/media/main/backportswith media_info/hdlist.cz
urpmi.addmedia contrib ftp://sunsite.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/official/2007.1/x86_64/media/contrib/releasewith media_info/hdlist.cz
urpmi.addmedia –update contrib_updates ftp://sunsite.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/official/2007.1/x86_64/media/contrib/updateswith media_info/hdlist.cz
urpmi.addmedia contrib_backports ftp://sunsite.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/official/2007.1/x86_64/media/contrib/backportswith media_info/hdlist.cz
urpmi.addmedia –update non-free_updates ftp://sunsite.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/official/2007.1/x86_64/media/non-free/updateswith media_info/hdlist.cz
urpmi.addmedia non-free_backports ftp://sunsite.mff.cuni.cz/OS/Linux/Dist/Mandrake/mandrake/official/2007.1/x86_64/media/non-free/backportswith media_info/hdlist.cz
urpmi.addmedia –update plf-free ftp://ftp.mandrivauser.cz/plf/mandriva/2007.1/free/release/binary/x86_64/ withmedia_info/hdlist.cz
urpmi.addmedia plf-free_backports ftp://ftp.mandrivauser.cz/plf/mandriva/2007.1/free/backports/binary/x86_64/ withmedia_info/hdlist.cz
urpmi.addmedia –update plf-nonfree ftp://ftp.mandrivauser.cz/plf/mandriva/2007.1/non-free/release/binary/x86_64/ withmedia_info/hdlist.cz
urpmi.addmedia plf-nonfree_backports ftp://ftp.mandrivauser.cz/plf/mandriva/2007.1/non-free/backports/binary/x86_64/ withmedia_info/hdlist.cz

Tyto zdroje (respektive seznamy příkazů k jejich nastavení) si můžete snadno naklikat na stránkách Easy URPMI, odkaz je zde nalevo (Easy URPMI (konfigurace zdrojů)), nebo klikněte přímo zde: http://easyurpmi.zarb.org/ . V prvním kroku vyberete verzi Mandrivy, platformu (typ procesoru) a balíčkovací program, pak kliknete na “proceed to step 2”, kliknutím doplníte zatržítka u zdrojů, k nimž chcete příkazy vypsat a kliknutím na “proced to steep 3” spustíte generátor příkazů, jehož vysledek si z následující stránky zkopírujete a uložíte tak, jak je uvedeno výše. Pokud tyto příkazy budete chtít použít jako script, nezapomeňte do prvního řádku napsat příznak, který umožní souboru spouštět jako sadu příkazů: #!/bin/sh. V prvním řádku nesmí být nic jiného a poslední řádeku musí být prázdný! Provedete-li stažení příkazů z těchto stránek, budete mít jistotu, že seznam zdrojů bude odkazovat na aktuální a platné stránky s balíčky.

Ještě jednu maličkou poznámku. Občas se stane, že ten či onen zdroj balíčků (server) je dočasně nedostupný. Řešením je mít víc různých zdrojů pro stejnou skupinu balíčků (main, contrib…) a přepínat mezi nimi, nebo jednoduše počkat, nejde-li o život. Zpravidla se během několika hodin (maximálně dnů) vše zase rozeběhne.

A nyní již spustíme to černé okénko, program Konzolu (v menu Systém-Terminály-Konzole). Zde se objeví tzv. promt, který vypadá v případě uživatele takto:
[user@nazev_stroje]$

v případě správce (roota) takto:
[root@nazev_stroje]#

Pro další budu zkracovat na konečné symboly $/# odlišující uživatele/roota.

Můžete přejít také do jedné z šesti textových konzol pomocí Ctrl+Alt+F[1 až 6]. Zde se neobjeví promt, ale výzva k přihlášení, takže zadáte své uživatelské jméno, potvrdíte entrem, zadáte heslo (na obrazovku se nevypisuje), následuje opět enter. Po úspěšném přihlášení se objeví promt. Jako root se nelze z bezpečnostních důvodů přihlásti přímo, ale jen z přihlášeného uživatele pomocí příkazu su (viz níže).
Všechny dále uvedené příkazy se po dopsání potvrdí/spustí klávesou Enter.

Nyní konečně přejdeme do výše uvedeného adresáře:
$ cd /home/user/Dokumenty/zdroje (Enter)

Pokud máte nainstalovaný balíček bash-completion (# urpmi bash-completion), pak stačí napsat jedno – dvě počáteční písmena každého adresáře a pomocí klávesy TAB se cesta (názvy souborů, parametry příkazů atp) doplní, nebo se nabídnou dostupné možnosti. Pokud si nepamatujete přesný název adresáře nebo nepíšete všemi deseti, je to vynikající pomůcka.

Script p. Cyroně je zabalen (zkomprimován/stlačen/zmenšen) v tzv. archívu, potřebný soubor z něj dostaneme příkazem:
$tar xzvf urpmi-internet-automatik… (doplňte přesný název archivu pomocí TAB)
V adresáři vznikne další soubor (nebo soubory či adresáře, podle obsahu archivu)

staneme se na chvíli superuživatelem
$ su
zadáme heslo (na obrazovku se nevypisuje) a potvrdíme entrem. Změní se promt z $ na #.

učiníme soubor spustitelným:
# chmod g+x urpmi-internet-automatik… (doplňte přesný název archivu pom
ocí tab)

Spustíme script, který vymaže staré zdroje a nastaví nové:
#sh ./urpmi-intern… (použít TAB)

Než se vše stáhne a provede, můžete jít na kafe.

Až to celé skončí, můžete v konzoli pokračovat instalací balíčků, které dříve nebyly dostupné, protože Vám chyběly zdroje.
Až doinstalujete, odhlašte roota (z bezpečnostních důvodů není dobré nechávat roota na konzoli přihlášeného trvale) kombinací kláves Ctrl+D. Opět vám v promtu naskočí místo # znak $. Další Ctrl+D okno Konzoly zavře (ukončí program), pokud jste ji spustili z grafického prostředí. V případě pravé textové konzoly (z grafiky se do ní dostanete klávesami Ctrl+Alt+F[1 až 6]) dojde po druhém stisku Ctrl-D k odhlášení uživatele (objeví se výzva k přihlášení) a pomocí kláves Alt+F7 se vrátíte do grafického prostředí, nebo Alt+F[2 až 6] střídáte další konzoly dle potřeby, protože na první ještě běží dlouhý script, na druhém čtete poštu v muttu, na třetí surfujete v linxu… a v pozadí vám mplayer pouští vybranou rozhlasovou stanici z netu. Objevte kouzlo příkazového řádku a zjistíte, že tzv. CLI programy vůbec nejsou nešikovné, jen jiné, než ty klikací.

Ještě několik užitečných příkazů:

  • když chci vědět, jestli je balíček k dispozici a informace o něm:

$ urpmq -i nazev_baličku

pokud nevím název přesně, stačí zadat jeho část, příkaz vypíše balíčky, které obsahují Vámi zadaný řetězec (případně lze použít příkaz urpmq -y text, který je určen přímo na to). Tenhle dotaz směřuje do indexů balíčků.

  • instalace balíčku:

# urpmi nazev_balíčku

  • odinstalace balíčku

# urpme nazev_baličku

  • hledáte, v jakém balíčku se nachází určitá knihovna nebo soubor:

$ urpmf nazev_souboru

  • chcete zjistit, jestli je balíček nainstalovaný

$ rpm -qa | grep nazev_balicku (stačí část názvu)

  • před instalací chcete vědět, jaké závislosti vyžaduje:

$ urpmq -d nazev_balíčku

  • stáhli jste balíček z netu, v databázi se nevyskytuje a chcete o něm zjistit informace:

$ rpm -qip nazev_souboru_rpm (tenhle příkaz se dívá přímo do uvedeného balíčku; buď musíte být v jeho adresáři, nebo k balíčku uvést plnou cestu)

  • instalujete nějaký balíček přpravený (skompilovaný) se závislostmi, které nikdy nebudete využívat a balíček se kvůli nevyřešeným závislostem odmítá nainstalovat (MĚLI BY JSTE VĚDĚT, CO DĚLÁTE!!!):

# urpmi –allow-nodeps nazev_rpm_balicku

  • Instalujete něco po delší době, a balíčkovač hlásí, že balíček není k dispozici? Asi došlo na straně serveru k aktualizaci balíčků. Musíte provést aktualizaci zdrojů:

# urpmi.update -a

Buď zadáte parametr -a, který zajistí aktualizaci všech zdrojů, nebo zadáte název konkrétního zdroje (zdrojů).

  • chcete využít balíčků postahovaných z netu – tzv. lokální zdroje

Tak to je věc, kterou začátečníkům rozhodně nemohu doporučit, protože to vytváří celou řadu možných komplikací. Ale kdo chce kam… (jen ve stručnosti)

  1. vytvořte lokální zdroj balíčků, aby urpmi vědělo, kde co je a mohlo se postarat o závislosti
    1. nainstalovat rpmtools (urpmi rpmtools)
    2. v adresari (měl by to být nejlépe některý systémový adresář, např. /usr/local/ a tam si root vytvori podadresar balicky nebo podobne. Protoze instalace je systémovou záležitostí, adresáře se zdroji by neměly být umístěny v uživatelském adresářovém stromu. V adresáři s rpm balicky je zapotřebí spustit příkaz genhdlist (je součástí rpmtools, vygeneruje nezbytné indexy)
  2. přidejte zdroj do databáze urpmi (správce balíčků)
    1. urpmi.addmedia nazev_zdroje_bez_mezer file://cesta/k/adresari/s_RPM_balicky/ wiht hdlist.cz

Soubor hdlist.cz je vytvořen zmíněným příkazem genhdlist a měl by být v adresáři s balíčky, nebo v podadresáři media_info.

O tnhle zdroj se musíte starat o něco málo víc než o ostatní. Po změně v adresáři (smazání/doplnění rpm balíčků) se musí znovu vygenerovat index příkazem genhdlis (je to přesně práce pro váš první scriptík) a provést aktualizace zdroje příkazem #urpmi.update muj_zdroj. Až se vám ten zdroj znelíbí, z databáze urpmi jej vyhodíte příkazem # urpmi.removemedia muj_zdroj. Stejný příkaz použijte v případě, že máte nastaven nějaký zdroj dvakrát. Seznam nainstalovaných zdrojů prohlédnete pomocí příkazu $urpmq –list-media. Nahlédnout můžete i do souboru, kde se tohle nastavení ukládá: /etc/urpmi/urpmi.cfg. K prohlížení lze použít třebas příkaz cat /etc/urpmi/urpmi.cfg | less , prohlížení se ukončí klávesou q, listovat lze tam i zpět šipkami. Tu svislou čárku před “less” lze zadat např. PravýAlt[někdy značeno AltGr]+w. Zde můžete vidět několik používaných konfiguračních parametrů:

je-li uvedeno

  • “removable”, jedná se o zdroj, který nemusí být přítomen vždy, typicky instalační DVD u verzí PowerPack.
  • “update” jde o zdroj obsahující aktualizace
  • “ignore” zdroj se momentálně nevyužívá, ale není smazán ze systému. V klikacím drakdisk ho lze snadno povolit, v konfiguračním souboru stačí smazat řádek s “ignore”. nebo ho tam naopak dopsat, když zdroj nechcete dočasně používat, ale nechcete ho vymazat z databáze příkazem urpmi.removemedia.
  • “file” jde o zdroj uložený na disku
  • “ftp” balíčky se stahují z internetu, v počítači máte jen seznam balíčků, ale ne balíčky samotné. K funkci nutné připojení na net.

Tenhle konfigurační soubor je svázán s databází urpmi, proto zde zdroje nemažte ani nedoplňujte, naděláte si hokej v databázi. K tomu slouží urpmi.addmedia nebo urpmi.removemedia, které se postarají o všechny návaznosti. Zde lze měnit jen konfigurační parametry u zavedených zdrojů, typicky parametr “ignore”.

Vraťme se ale k našemu tématu. Jak vidíte ze vzhledu promtu, dotazy na databázi balíčků může klást každý uživatel, manipulace s ní (instalace,deinstalace, aktualizace atp.) je vyhrazena jen pro roota.

To vše lze dělat také v grafické nadstavbě urpmi, které lze spustit přímo příkazem drakrpm, nebo se k němu proklikat přes ovládací centrum Mandrivy (spouští ho příkaz drakconf). Je ale zbytečné čekat, než se načtou seznamy balíčků, než se vše vylistuje,…. když v konzoli je to podstatně rychlejší. Navíc již umíte:

  • spustit Konzolu pro zadávání textových příkazů
  • přecházet mezi grafickým a textovým rozhraním
  • přihlásit se jako root i v textovém rozhraní (nejprve uživatel, pak přes příkaz “su” root)
  • zadat v konzoli potřebný(é) příkaz(y)
  • rozbalovat zkomprimované soubory z archívů
  • spravovat zdroje balíčků, balíčky instalovat a odinstalovávat a to včetně lokálních
  • v konfiguračním souboru vypínat a zapínat zavedené zdroje dle libosti

Víte také, že

  • některé příkazy mají parametry oddělené pomlčkou, které programu říkají, co po něm chcete
  • existuje elegantní cesta, jak se v konzoli vyhnout únavnému psaní názvů adresářů, cest, příkazů (bash-completion a klávesa TAB)

Dále víte, jak vypadá shellový script –
je to prostě posloupnost příkazů, které obvykle můžete zadávat v konzoli i jednotlivě. Pokud je napíšete do textového souboru, na začátek doplníte obligátní #!/bin/bash a učiníte soubor spustitelným, příkazy se provedou postupně všechny jeden po druhém. Tak se dá mnoho často opakovaných činností zautomatizovat a v linuxu se tohle používá velmi často.

Už z Vás jsou linuxáci 🙂

Pro další studium Mandrivy si stáhněnte příručky v pdf formátu, tam se dozvíte daleko víc:

ftp://mandriva.contactel.cz/people/bibri/doc/manual-mdv-2006cz_1_Pouzivame_Mandriva_Linux.pdf

a

ftp://mandriva.contactel.cz/people/bibri/doc/manual-mdv-2006cz_2_Mandriva_Linux_pod_lupou.pdf

kde jsou podrobnější a hlubší informace.

K jednotlivým programům existuje nápověda, kterou vyvoláte příkazem $ man nazev_programu_nebo_prikazu . Nainstalujete-li si balíček man-pages-cs (#urpmi man-pages-cs), pak na vás řada manuálových stránek začne mluvit česky. Vyzkoušejte například nápovědu k programu man: $ man man .

Na další literaturu o Linuxu obecně Vás mohou nasměrovat na recenze publikací pojednávajících o Linuxu v menu nalevo nahoře: Články – Recenze.

Tak ať se daří.

Honza.

Poslední aktualizace:5.9.2007

4 komentáře

  1. JARO | 07.09.2007 | 19:46 | Odpovědět

    po spusteni skriptu vypisuje “nie je možne zistiť cestu na vymenitelny zdroj “Mandriva 2007,1 (Free) – installer””
    a to mi vypisovalo aj predtym ak som si dal nieco naistalovat z webu
    S pozdravom Jaro

    1. Hobil | 08.09.2007 | 12:22 | Odpovědět

      Toje pravda, tenhle script doplní jen internetové zdroje.
      Pokud je doplníš, pak již balíčky z DVD nepotřebuješ; vzhledem k průběžným aktualizacím velmi rychle zastarávají. Mám ve správci taky zařazené balíčky z instalačního DVD (cz verze 2007.1), ale při instalacích je DVD je vyžadováno velmi zřídka.
      Protože je ve správci balíčků zařazeno jako první, tak se balíčky, které nemají vyšší verzi jinde, snaží naistalovat z DVD. Pokud tam nebude, stáhne se z inetu.
      Asi bych to neřešil.
      Pokud si ho chceš přidat, najdi si adresář(e) s balíčky a ve správci balíčků si je přidej ručně jako výměnné médium. Honza.

  2. Miroslav Cyroň | 19.09.2007 | 22:20 | Odpovědět

    Odkazy v článku na urpmi-internet-automatic 1.2 jsou přesměrovány na novou verzi 2.0 – dal jsem tam .htacces s RewriteRule.

  3. faluky | 11.10.2007 | 14:37 | Odpovědět

    Zdravím, rád bych se zeptal, zda budou na vašich stránkách http://mandrivalinux.ic.cz/ k dispozici balíčky i pro Mandrivu 2008? Jinak super stránky, hodně mi pomohly. Jsem tam celkem často ;-). Díky za info

Leave a comment

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