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

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ů

20.8.2014 7:02 /MaReK Olšavský
Lehký úvod pro nasazení Dockeru přinesl web Opensource.com. Autor vysvětlil nejen první kroky v nasazení Dockeru, ale i filosofii kontejnerů.
Přidat komentář

20.8.2014 7:02 /MaReK Olšavský
AMD se snaží konkurovat Intelu i na poli SSD disků, ohlásila Radeon R7 Series SSD (oznaření Radeon může mást, tentokrát nejde o GPU). SSD obsahuje MLC NAND čipy Toshiba A19, s kontrolerem Barefoot 3 M00 a základní verze (120 GB) se prodává za US$ 100.
Přidat komentář

19.8.2014 16:39 /Miloslav Ponkrác

C++ schválilo standard C++14.. Ještě je třeba dokončit editační práce na finální verzi dokumentů standardu.

Takže C++ bude mít velmi brzy 3 základní standardy: ISO C++98/03, ISO C++11 a ISO C++14. Všechny novější standardy jsou vzájemně výborně zpětně kompatibilní se staršími (až ne velice nepodstatné drobnosti), takže C++ programátor je může vnímat pouze jako vzájemné rozšiřování.


Přidat komentář

19.8.2014 7:53 /MaReK Olšavský
Rusko to evidentně myslí s odklonem od velkých dodavatelů software vážně. Přechod začalo ministerstvo zdravotnictví, jež nahrazuje produkty Microsoftu a Oracle řešeními na bázi GNU/Linuxu a PostgreSQL,
Přidat komentář

19.8.2014 7:53 /MaReK Olšavský
Nostalgie za původním vzhledem a chováním desktopu GNOME, které bylo uživatelsky mnohem lepší, vedla k vytvoření nového desktopu MATE. Ubuntu, jakožto nejpopulárnější distribuce a původně i „vlajková loď“ GNOME, má i fork s MATE, jenž se stane oficiální větví, čímž se zařadí po bok Kubuntu, Xubuntu a Lubuntu.
Přidat komentář

9.8.2014 14:32 /František Kučera
Programovací jazyk Java přináší ve své 8 verzi řadu zajímavých novinek a také rozšíření možností jazyka směrem k funkcionálnímu programování. Zejména lambda výrazům a funkčním rozhraní se věnuje autor úvodního článku Java 8: novinky jazyka na blogu Frantovo.cz.
Přidat komentář

7.8.2014 7:15 /MaReK Olšavský
Velká změna se dotkne vývoje Qt, jež bude oddělen od společnosti Digia do nové firmy. Zájem je čistě komerční, 85 % nákladů na vývoj nese Digia a nová společnost má zapracovat i na sjednocení stávajícího stavu, kdy Qt konkuruje samo sobě v komerční i open source verzi.
Přidat komentář

7.8.2014 7:15 /MaReK Olšavský
Android proniká i do automotive. HUD, který nejen promítá data na přední sklo, představila firma Navdy. HUD spolupracuje s chytrými telefony a dá se ovládat gesty.
Přidat komentář

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

> Poslední diskuze

19.8.2014 11:02 / Le-Ze
Python s Lighttpd

15.8.2014 3:12 / Miloslav Ponkrác
Re: Kdyby autoři BeoSu nebyli blbci

15.8.2014 3:01 / Miloslav Ponkrác
Re: WIFI ůprava paketů připojených zařízení

15.8.2014 2:56 / Miloslav Ponkrác
Re: Linus tedy střílí do unixové architektury

13.8.2014 18:58 / Aleš Hakl
Re: Linus tedy střílí do unixové architektury

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