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

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.5.2013 6:42 /MaReK Olšavský
V rodině Arduina je nový přírůstek, Arduino Yún („Yún“ je čínsky „mrak“). Nové Arduino je nejen první s GNU/Linuxem, ale nabízí i WiFi konektivitu.
Přidat komentář

24.5.2013 6:42 /MaReK Olšavský
Na stránkách OMG! Ubuntu! vyšel krátký rozhovor s Markem Shuttleworthem. Tématy jsou Mir, Unity 8, budoucnost Ubuntu Touch, ale neunikl ani otázce na Windows 8.
Přidat komentář

23.5.2013 6:20 /MaReK Olšavský
Lektoři, kteří používají e-learning, se již nejspíše setkali s platformou Moodle, jejíž vývojáři vydali verzi 2.5 populární platformy. Vedle několika stovek drobných vylepšení přibyly i novinky v mobilním přístupu, podpora twitterovského Bootstrapu pro témata, nebo instalace pluginů přes administrátorskou část webového rozhraní.
Přidat komentář

23.5.2013 6:20 /MaReK Olšavský
Nová distribuce Pidora by měla zajímat Fedoristy, kteří mají Raspberry-Pi, jelikož je optimalizovaným spinem právě pro tuto platformu. Novinky Pidory shrnul Rick Lehrbaum .
Přidat komentář

23.5.2013 6:20 /MaReK Olšavský
Krátce po vydání Debianu 7 vyšel i Debian GNU/Hurd 2013. Jádro GNU/Hurd se vyvíjí delší dobu, než Linux, ale zatím je spíše zajímavostí, protože jádro Linux se etablovalo u velkých společností a změna kurzu je více než nepravděpodobná.
Přidat komentář

22.5.2013 6:46 /MaReK Olšavský
Svobodný software ve státní sféře nejsou jen vítězství, ale i mýty a pověry, které jej vylučují z výběru. 5 nejčastějších hloupostí o F/L/OSS zkritizoval Adam Firestone na stránkách OpenSource.com. Nesetkáváme se s podobnými argumenty i při snaze prosadit svobodný software ve firmách a u soukromých osob?
Přidat komentář

22.5.2013 6:46 /MaReK Olšavský
Embedovatelná databáze SQLite byla vydána ve verzi 3.7.17, která nabízí větší rychlost (v některých úlohách až dvojnásobnou), opravy několika chyb, nebo vylepšení možností nahrávání rozšíření. O SQLite se píše výrazně méně, než o konkurenci, ale velmi pravděpodobně jde o nejčastěji nasazené řešení, díky mnoha aplikacím.
Přidat komentář

22.5.2013 6:45 /MaReK Olšavský
14. května 2013 IBM oznámila konec vývoje Lotus SmartSuite , Lotus Organizer a Lotus 1-2-3, balíků aplikací, jež byly považovány za špičku v oboru. Krátký nekrolog za legendární Lotus 1-2-3, který byl vyvíjen 30 let, sepsal Steven J. Vaughan-Nichols.
Přidat komentář

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

> Poslední diskuze

18.5.2013 17:55 / Martin Kumst
Re: zaheslování bash scriptu nebo složky

18.5.2013 7:44 / ---
Re: Prosím o pomoc či radu

15.5.2013 19:21 / Filip Vaněček
Cesty k souborům při používání coolurl

13.5.2013 6:50 / Radim Kolář
Zabbix

8.5.2013 6:07 / MaReK Olšavský
Web Upd8

Více ...

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