![]() |
| By Ben Okopnik Uvod Ako koristiš Perl za bilo šta komplikovanije od tradicionalnog i dosadnog ’Halo svete’ onda si najverovatnije upoznat sa predivnom alatom koji ti štedi vreme - Perl moduli. Takođe si verovatno upoznat sa CPAN i lakim iterfejsom koji je isto CPAN module. Sve funkcioniše super ako 1. radiš na operativnom sistemu kao Linux 2. imaš root pristup, ili prijateljskog i razumnog administrator Šta ako 1 i 2 nije tačno. Sta ako imas pristup mašini koje je vlasništvo firme koja ne želi da instaliraš Foo::Bar::Zotz::Blagger-0.01 modul u /usr/lib/perl? Kao prvo, ne mogu da ih osuđujem, ovakve instalacije mogu da donesu izobilje glavobolja. Ako se tvoji interesi ne poklope sa firminim, ti uvek gubiš pošto je mašina njihova. Pa šta da radimo ako stvarno treba da instalirano taj modul? Pa instaliraj ga u direktorijum gde imaš ovlašćenje da to uradiš. Konfiguracija radnog okruženja Jasno, ako nisi root ne možeš da sačuvaš fajlove u /usr/ gde oni obično idu. Tako da treba da kažemo Perlu gde da nađe module kada ih instaliramo. Na sreću ovo je lako, izaberi lokaciju gde da instaliraš modul, napravi direktorijum ako već ne postoji, dodaj /lib i dodaj lokaciju u PERL5LIB. Na primer, ako koristiš BASH u ~/.bash_profile dodaj sledeće if [ -z "$PERL5LIB" ] then # If PERL5LIB wasn't previously defined, set it... PERL5LIB=~/myperl/lib else # ...otherwise, extend it. PERL5LIB=$PERL5LIB:~/myperl/lib fi MANPATH=$MANPATH:~/myperl/man export PERL5LIB MANPATHSada kreiraj tri neophodna direktorijuma
mkdir -p ~/myperl/lib
mkdir -p ~/myperl/man/man{1,3}
Uloguje se ponovo i Perl će misliti o dodatoj lokaciji kao delu @INC, što je lista direktorijuma za pretragu modula i biblioteka.
Proveri ovo sa komandom i koristi tvoj direktorijum kao argument za ‘grep’
perl -wle'print for grep /myperl/, @INC'
Instaliranje Modula
perl -MCPAN -we 'shell'
Prvo moraš da konfigurišeš CPAN module. Ako ovo nisi radio ranije, baš je prosto, koristi gornju komandu. Neki ovo zovu ‘pileće kljucanje’ instalacija (dovedi pile to ‘enter’ dirke da je kljuca i istalacija će biti uspešna). Naš slučaj se razlikuje od standardne instacije. Kada te skript pita za dodatni argument za Makefile.PL ti treba da staviš sledeću listu (pretpostavka je da si izabrao '~/myperl' kao privatni lib direktorijum).
LIB=~/myperl/lib INSTALLSITEMAN1DIR=~/myperl/man/man1 INSTALLSITEMAN3DIR=~/myperl/man/man3
Takođe UNINST vrednost treba da bude isključena (OFF), uradi ovo sa 'UNINST=0' kada budeš upitan tokom instalacije (ovo je aktivna opcija ali je proveri za svaki slučaj). Ako ti je CPAN već konfigurisan onda moraš da promeniš konfiguraciju. Startuj “shell” (rado bi preveo ovo kao шкољку) i nastavi sa komandom u "cpan> " ''o conf makepl_arg "LIB=~/myperl/lib INSTALLSITEMAN1DIR=~/myperl/man/man1 INSTALLSITEMAN3DIR=~/myperl/man/man3" o conf make_install_arg UNINST=0 o conf commit''I to je to. Od sada će korišćenje CPAN školjke ili neke druge CPAN funkcije ili metoda izgledati kao: # startuj školku perl -MCPAN -we shell # Instaliraj Net::FTP modul perl -MCPAN -we 'install "Net::FTP"' # nadgradi sve stare modele na sistemu perl -MCPAN -we 'CPAN::Shell->install(CPAN::Shell->r)'Zaključak CPAN moduli i dokumentacija koji su deo standardne instalacije, su oduvek bili dobri, ali su postali čak bolji zadnjih godina. Ako nisi upoznat sa njima, krajnje je vreme, pošto će ti ovo uštedeti vreme i napor. Prvo pogledaj CPAN pre nego što kreneš da radiš na složenom projektu. Ja sam gubio dosta vremena pokušavajući da rešim neki problem a kasnije sam saznao da već postoji modul koji rešava taj problem. Probaj ih i srećno hakiranje. Napomena prevodioca: Ја sam 100% amater u prevođenju i veoma se dvoumim kada treba da prevedem neke reči karakteristične za oblast računara. Biće mi drago ako ima onih koji su veštiji u prevođenju i voljni da razvijaju ovaj sajt. | |||