LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Perl (41) - CPAN

Dnes uzavřeme blok dílů zabývajících se moduly. Tématem 41. dílu je archiv modulů CPAN - jeden z hlavních důvodů popularity Perlu.

7.9.2006 06:00 | Jiří Václavík | Články autora | přečteno 15665×

Ve standardní distribuci Perlu je již řada modulů k dispozici. Stačí jen nahlédnout do adresářů uložených v poli @INC. Přesto však v praxi budeme relativně často potřebovat i specializovanější moduly, které si budeme muset sehnat sami. Díky archivu CPAN je to velmi snadné.

Akronym CPAN pod sebou skrývá sousloví Comprehensive Perl Archive Network. Na CPANu jsou již přes 10 let shromážděny volně dostupné moduly s dokumentací a vůbec vše okolo Perlu.

Jak napovídá slovo Comprehensive, jde o obrovské množství dat. Počet modulů již překročil číslo 10000. Lze najít vše od opravdu užitečných modulů až po takové rarity jako třeba vyhledávač v koránu.

CPAN je dostupný na stovkách mirrorů po celém světě. V České republice máme zatím 4 oficiální mirrory.

Každý se do vývoje modulů může sám zapojit a importovat svůj výtvor prostřednictvím PAUSE (Perl Authors Upload SErver).

Určitě stojí za to CPAN prohledat skrz naskrz, protože obsahuje spoustu zajímavých informací.

V adresáři /src na CPANu jsou k dispozici distribuce Perlu.

Do adresáře /doc je umístěna dokumentace. Je zde i to, co v oficiální distribuci Perlu nenalezneme. Většina je však neudržovaná. Upozorněme na část FMTEYEWTK (název vytvořen jako akronym k Far More Than Everything You Ever Wanted To Know), jehož autorem je Tom Christiansen. Obsahuje spoustu rad a vyřešených problémů.

V adresáři /authors nalezneme adresáře autorů modulů. Nakonec zde máme adresář /modules, kde je seznam modulů. Ten obsahuje podadresáře, v nichž jsou moduly řazeny podle daných kritérií - jména modulu, kategorie (viz screenshot níže) nebo jmen jejich autorů.

Hledání modulu na CPAN

CPAN obsahuje vyhledávací stroj, který vyhledávání významně zefektivňuje. Na search.cpan.org je možnost vyhledávat podle slova nebo kategorií.

Úvodní strana vyhledávače modulů search.cpan.org

Úvodní strana vyhledávače modulů search.cpan.org

Po nalezení modulu ho jednoduše stáhneme. Teoreticky lze stáhnout i samotný kód (odkaz source v dokumentaci modulu), ale obvykle se kopíruje tar.gz soubor, ze kterého lze modul instalovat.

Detekce modulu

Ještě než ale modul stáhneme, je užitečné se přesvědčit, zda ho náhodou již v systému nemáme.

Asi nejrychlejší způsob, jak ověřit přítomnost daného modulu v adresářích z pole @INC, je zadání následujícího příkazu.

$ perl -e'print "Modul dostupny\n";' -MJménoModulu

Buď je vypsána hláška Modul dostupny, pak je vše v pořádku - nic nemusíme instalovat a modul můžeme normálně importovat. Anebo se zobrazí chybová hláška Can't locate Math/Bignt.pm in @INC. V tom případě modul nemáme a nezbývá než ho někde sehnat. Nejlépe v archivu CPAN.

Instalace modulu

Z archivu CPAN jsme získali soubor modul.tar.gz. Rozbalením získáme adresář.

$ tar xvzf modul.tar.gz -C $SOURCE_PATH

V něm jsou soubory distribuce a mimo jiné i soubor README, kde je postup instalace. Nejdříve vytvoříme Makefile.

$ perl Makefile.PL

A poté modul nainstalujeme.

$ make
$ make test
# make install

Pokud vše proběhlo, je hotovo a nainstalovaný modul můžeme normálně použít. Spolu s modulem se k němu nainstalovala i dokumentace.

Modul CPAN a automatická instalace modulu

Jestliže máme nainstalován modul CPAN (nebo vylepšený CPANPLUS), výrazně nám to usnadní instalaci modulů. Všechny příkazy, které jsou nutné pro stáhnutí a instalaci modulu se srazí na jediný. Navíc budou automaticky řešeny závislosti.

Než přistoupíme k popisu modulu CPAN, ověřme, zda ho máme v systému.

$ perl -e1 -MCPAN

Pokud dostupný není, stáhneme ho z http://search.cpan.org/~jhi/perl-5.8.0/lib/CPAN.pm a nainstalujeme podle výše uvedeného návodu

Modul CPAN totiž poskytuje interaktivní rozhraní. Stačí zadat jediný příkaz a modul, který chceme instalovat, je stažen a nainstalován. Ke spuštění interaktivního rozhraní je třeba vytvořit skript o těchto dvou řádcích.

use CPAN;
shell;

Obvykle se tento soubor nevytváří a vše se zahrnuje do příkazu shellu. Aby to bylo ještě jednodušší, je výhodné si na něj udělat alias. Dokonce je možné, že alias máte implicitně nastaven na příkaz cpan.

$ perl -MCPAN -eshell

V interpretu, který se právě spustil můžeme zadávat příkazy. První skupinu příkazů tvoří vyhledávací příkazy.

PříkazVýznam
avyhledávání v autorech
bvyhledávání v balících
dvyhledávání v distribucích
ivyhledávání v autorech, balících, distribucích a modulech
mvyhledávání v modulech

Vyhledávání může probíhat regulárně nebo ne. Pokud uvedeme jako příkaz pouze hledaný řetězec, hledá se přesná shoda. Umístěním řetězce mezi lomítka se z něj stává regulární výraz a lze tak používat speciální znaky.

cpan> a /CHRISTIANSEN/
Author id = TOMC
    EMAIL        tchrist@mox.perl.com
    FULLNAME     Tom Christiansen


cpan> 

Dalším a nejdůležitějším příkazem je install. Jak název prozrazuje, stahuje a instaluje moduly. Nainstalujeme si modul Math::Complex.

cpan> install Math::Complex

Pokud se nevyskytnou žádné problémy (jako třeba práva), měl by se modul sám instalovat. Instalovat lze opět i neinteraktivně přímo přes příkaz shellu.

$ perl -MCPAN -e "install 'Math::Complex'"

Velmi zajímavý je též příkaz r v interaktivním režimu. Najde totiž vaše moduly, u kterých je již k dispozici novější verze.

cpan> r

Package namespace  installed   latest  in CPAN file
Algorithm::Diff         1.15   1.1901  T/TY/TYEMQ/Algorithm-Diff-1.1901.zip
Apache::AuthCookie      3.06     3.08  M/MS/MSCHOUT/Apache-AuthCookie-3.08.tar.gz
...

Chcete-li tyto moduly upgradovat, zadejte tento příkaz.

$ perl -MCPAN -e "CPAN::Shell->install(CPAN::Shell->r)"

Příkaz autobundle vypíše všechny instalované moduly a zapíše je do souboru ~/.cpan/Bundle/Snapshot_RRRR_MM_HH_VV.pm. Pomocí něj lze na jiném stroji instalovat tutéž konfiguraci.

V dokumentaci na CPAN(3pm) je o modulu CPAN mnohem více. Rozhodně se vyplatí ji alespoň zběžně přelétnout

Dokumentace k modulům

Moduly jsou zdokumentovány ve formátu POD přímo v souboru s modulem. Během instalace modulu se POD konvertuje na formát manuálových stránek troff. Informace o modulu CPAN získáme jednoduše příkazem man.

$ man CPAN

Verze pro tisk

pridej.cz

 

DISKUZE

Nejsou žádné diskuzní příspěvky u dané položky.



Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

24.10.2014 17:45 /Petr Ježek
Hyper-Z pro radeony se vrací. Anreas Böll vydal patch umožňující opětovné povolení Hyper-Z v aktuální mesa 10.3 pro radeon R600g a radeonsi. Doporučuje se aplikovat, testovat a reportovat případné problémy před vydáním mesa10.4 v prosinci.
Komentářů: 1

24.10.2014 7:33 /MaReK Olšavský
Vyšlo Ubuntu 14.10 a spiny s dalšími desktopy Kubuntu 14.10, Xubuntu 14.10 a poprvé i Ubuntu-Mate (Lubuntu 14.10 bude opožděno). Změn je poměrně málo, nestihli zařadit aktuální GNOME a je bez convergence části.
Přidat komentář

24.10.2014 7:33 /MaReK Olšavský
Přípravy na vydání Debianu 8 jsou v plném proudu a nejednoho potenciálního uživatele by mohla zajímat připravovaná podpora multimédií pro novou verzi (jinak dosti konzervativní distribuce). Asi nebude potřeba používat obskurdní repozitáře kvůli podpoře přehrávání audia/videa a hudebníky nejspíše také potěší.
Přidat komentář

23.10.2014 7:13 /MaReK Olšavský
CERN používá OpenStack přibližně rok. Jaké je aktuální používání při výzkumu ukazuje článek na OpenSource.com. Vyprodukovaných dat, z měření, není malé množství a pro jejich zpracování je potřebný výkon několikatisíců serverů a pracovních stanic.
Přidat komentář

23.10.2014 7:13 /MaReK Olšavský
Prodejce starších her; jež jsou často hratelnější, než moderní grafické orgie; Good Old Games dosáhl milníku 100 her připravených pro Linux (nejde o portace, ale připravené konfigurace DOSBoxu/Wine).
Přidat komentář

23.10.2014 7:13 /MaReK Olšavský
O malou reklamu pro Ubuntu se postaral Andy Swan, se svým laptopem, při analýze počasí pro tragickou Velkou Cenu Japonska 2014 (Formule 1).
Přidat komentář

22.10.2014 7:19 /MaReK Olšavský
Programovacímu jazyku Swift, jenž nedávno zveřejnil Apple a je uzavřený, vzniká svobodná odpověď Phoenix (repozitář). Jazyk bude stejný, takže lze očekávat, že se Apple bude bránit i soudně. Název Phoenix už nejspíše také někdo používá, starší pamatují, že se tak chvíli jmenoval dnešní Mozilla Firefox.
Přidat komentář

22.10.2014 7:19 /MaReK Olšavský
Programátorům v PHP je určen nástroj RIPS, který jim pomůže odhalit zranitelnosti v jejich kódu. Pokud znáte další nástroje, podělte se o ně v diskusi.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

24.10.2014 17:47 / Petr Ježek
Andreas

16.10.2014 7:56 / Leo
Sanba

13.10.2014 7:20 / MaReK Olšavský
Re: PDF a podpis

10.10.2014 8:01 / Hynek Beran
PDF a podpis

10.10.2014 7:41 / Dusan Hlavac
Re: Takže nic.

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2014) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze | zákony online