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 15695×

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ů

31.10.2014 15:37 /Petr Ježek
Nová verze 2.0 tiskového systému Cups vyžaduje reaktivaci pomocí systemctl v distribucích se systemd ('disable' a 'enable'). Původní služba cups.service je nahrazena službou org.cups.cupsd.service. Při aktualizacích na to nemusí být vždy upozorněno či automaticky provedeno.
Přidat komentář

31.10.2014 7:00 /MaReK Olšavský
Výtečnou správou pro vývoj GNU/Linuxu je ambiciózní čínský plán na přechod počítačů do roku 2020, jenž se týká počítačů používaných ve státní správě. Možná kolem tohoto plánu nebude tolik humbuku, jako kolem přechodu města Mnichov.
Přidat komentář

31.10.2014 7:00 /MaReK Olšavský
„Další prohlížeš s jádrem Blink“ (aktuální generace Webkitu) i pro GNU/Linux nabídl Yandex. Zatím je to jen beta vydání. Potvrdí prohlížeč pověst výtečných ruských vývojářů?
Přidat komentář

31.10.2014 7:00 /MaReK Olšavský
V prosinci by se měl začít prodávat tablet s Ubuntu, založený na mikroprocesoru x86. Podle zatím známých specifikací není konfigurace úplně špatná, otázkou je, jak bude rychlá, když si uživatel nainstaluje hodně aplikací.
Přidat komentář

30.10.2014 5:55 /MaReK Olšavský
Lidé z technické univerzity v Berlíně pomáhají s vybudováním technologických znalostí v Afghánistánu a vše dělají s použitím svobodných technologií.
Přidat komentář

30.10.2014 5:55 /MaReK Olšavský
Standard HTML5, který dává vývojáři mnohem větší prostor, je prohlásila W3C za dokončený a to po 15 letech po zveřejnění posledního použitelného standardu HTML 4.01. HTML 5, společně s CSS3 a novými možnostmi JavaScriptu, může přinést i konec technologiím Adobe Flash/Shockwave.
Přidat komentář

30.10.2014 5:55 /MaReK Olšavský
Další skupina dobrovolníků se pustila do úkolu, který zatím odolává, vytvoření plně otevřeného hardware GPU, tentokrát vycházející ze sveřejněných specifikací jižního můstku AMD. Podaří se (tentokrát) dotáhnout návrh do produkčního konce, nebo půjde opět jen o marnou práci vývojářů.
Přidat komentář

29.10.2014 8:04 /MaReK Olšavský
Nástup ARM platformy do serveroven si nechce nechat uniknout ani Microsoft, protože energeticky efektivní řešení jsou klíčová, a připravuje i vlastní serverové řešení.
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