seputar PERL

intro ...

Perl is a dynamic programming language created by Larry Wall and first released in 1987. Perl borrows features from a variety of other languages including C, shell scripting (sh), AWK, sed and Lisp.
Structurally, Perl is based on the brace-delimited block style of AWK and C, and was widely adopted for its strengths in string processing, and lack of the arbitrary limitations of many scripting languages at the time.
Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.
The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal).[6] Its major features include support for multiple programming paradigms (procedural, object-oriented, and functional styles), automatic memory management, built-in support for text processing, and a large collection of third-party modules.
The overall structure of Perl derives broadly from C. Perl is procedural in nature, with variables, expressions, assignment statements, brace-delimited code blocks, control structures, and subroutines.

Para pengguna distro Trustix Secure Linux aka TSL tentu sudah tidak heran dengan konsep minimal TSL. Terutama untuk TSL 2.0 dan TSL 2.1.
Beberapa aplikasi atau library harus dikompile sendiri untuk memenuhi syarat aplikasi baru yang akan diinstall. Hal ini tentunya tidak menjadi masalah bila aplikasi tersebut sudah dipaketkan dalam bentuk RPM. Hanya saja paket rpm di TSL hanya untuk aplikasi dasar, sedangkan untuk aplikasi tambahan tidak.

Demikian juga untuk PERL. Di TSL, paket rpm PERL yang tersedia hanya untuk basic PERL. Belum mencakup modul-modul yang lain.
Tidak seperti RedHat/Fedora, Mandrake, Suse atau distro yang lain.
Untung-nya module-module perl dapat didonlot dan diinstall dengan mudah dengan bantuan CPAN.

instalasi/update

Untuk menginstall beberapa modul perl dapat mempergunakan fasilitas CPAN.
Aplikasi bantu yang diperlukan untuk instalasi adalah

ftp
gpg                /usr/bin/gpg
gzip               /usr/bin/gzip
lynx
make               /usr/bin/make
ncftpget           
pager              /usr/bin/less
shell              /sbin/bash
tar                /bin/tar
unzip
wget               /usr/bin/wget

Kolom dikiri menunjukkan nama aplikasi kolom dikanan menunjukkan path dari aplikasi tersebut.
Beberapa aplikasi diatas tidak semuanya bersifat wajib. Yang wajib harus ada adalah make dan tar.
Sedangkan aplikasi untuk mendonlot source wajib harus satu. Pilihan yang tersedia adalah ncftp, ftp, lynx dan wget.
Disini dipilih aplikasi wget karena akan kelihatan progress donlot, untuk aplikasi yang lain pathnya dapat dihapus atau diarahkan ke tempat yang salah sehingga tidak bisa dieksekusi.

Selain aplikasi diatas, beberapa module perl juga membutuhkan library dari file tertentu yang harus sudah tersedia sebelumnya.
Misal module GD membutuhkan libgd, module mysql membutuhkan mysql.h dan seterusnya.

Untuk instalasi bisa memakai fasilitas CPAN.
File yang akan diinstall akan dicek dahulu untuk mendapat versi terakhir, lalu diperiksa di cache local, bila tidak baru di-donlot dari internet.

CPAN sendiri merupakan modul didalam perl, untuk meng aktifkan CPAN dapat dengan perintah dibawah.

root@azzura root# perl -MCPAN -eshell
Bila ini adalah pertamakali masuk kedalam CPAN, maka harus mengisi beberapa konfigurasi. Bila konfigurasi sudah selesai maka akan muncul promt
cpan>

Untuk keluar dari cpan ketik exit.

cpan> exit
Lockfile removed.
root@azzura root#

Sesudah konfigurasi bila masuk lagi kedalam CPAN, maka sudah tidak lagi ditanya masalah konfigurasi.

root@azzura root# perl -MCPAN -eshell
cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support enabled

cpan>
Untuk melihat konfigurasi yang sudah diatur ketik :
cpan> o conf
Untuk mengulang konfigurasi dari awal, ketik :
cpan> o conf init
Misal akan menginstal modul CGI, maka ketik install CGI dan tunggu sampai selesai.
cpan> install CGI
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Sun, 09 Jan 2005 20:53:26 GMT
Running install for module CGI
Running make for L/LD/LDS/CGI.pm-3.05.tar.gz
CPAN: Digest::MD5 loaded ok
CPAN: Compress::Zlib loaded ok
Checksum for /root/.cpan/sources/authors/id/L/LD/LDS/CGI.pm-3.05.tar.gz ok
Scanning cache /root/.cpan/build for sizes
...
...
...
...
Installing /usr/share/man/man3/CGI.3
Installing /usr/share/man/man3/CGI::Carp.3
Installing /usr/share/man/man3/CGI::Fast.3
Installing /usr/share/man/man3/CGI::Switch.3
Installing /usr/share/man/man3/CGI::Apache.3
Installing /usr/share/man/man3/CGI::Push.3
Installing /usr/share/man/man3/CGI::Util.3
Installing /usr/share/man/man3/CGI::Cookie.3
Installing /usr/share/man/man3/CGI::Pretty.3
Writing /usr/lib/perl5/5.8.3/i586-linux-thread-multi/auto/CGI/.packlist
Appending installation info to /usr/lib/perl5/5.8.3/i586-linux-thread-multi/perllocal.pod
  /usr/bin/make install  -- OK

cpan>

Secara otomatis CPAN akan mengecek keberadaan source di local cache, bila tidak ada baru akan mendonlot dari mirror perl yang anda pilih pada waktu konfigurasi awal tadi. Perintah ini juga dapat dipergunakan untuk meng-update modul perl versi lama.

check installed

Untuk melihat modul apa saja yang sudah terinstall pada perl, dapat mempergunakan script bantu.

#!/usr/bin/perl

use ExtUtils::Installed;
my $instmod = ExtUtils::Installed->new();
foreach my $module ($instmod->modules()) {
my $version = $instmod->version($module) || "???";
       print "$module -- $version\n";
}

Note: Sesuaikan path binary perl anda !!
         Module ExtUtils biasanya sudah langsung terinstall bersama binary basic perl

Salin script diatas dalam sebuah file misal installed.pl lalu ubah ijin akses-nya menjadi execute.

root@azzura root# vi installed.pl
root@azzura root# chmod +x installed.pl

Scipts siap digunakan

root@azzura root# ./installed.pl
Archive::Tar -- 1.23
CGI -- 3.05
Compress::Zlib -- 1.33
Cwd -- 3.01
DBD::mysql -- 2.9004
DBI -- 1.46
GD -- 2.19
GD::Graph -- 1.43
GD::Graph3d -- 0.63
GD::Text -- 0.86
IO::String -- 1.06
IO::Zlib -- 1.04
Net -- ???
Net::Telnet -- 3.03
Perl -- 5.8.3
Proc::ProcessTable -- 0.39
Term::ReadKey -- 2.21
Term::ReadLine -- 1.01

removing

Untuk menghapus modul perl yang tidak pergunakan atau rusak dapat memakai scipt sebagai berikut:

#!/usr/bin/perl -w

use ExtUtils::Packlist;
use ExtUtils::Installed;

$ARGV[0] or die "Usage: $0 Module::Name\n";

my $mod = $ARGV[0];

my $inst = ExtUtils::Installed->new();

    foreach my $item (sort($inst->files($mod))) {
             print "removing $item\n";
             unlink $item;
          }

     my $packfile = $inst->packlist($mod)->packlist_file();
          print "removing $packfile\n";
          unlink $packfile;

Salin script diatas dalam sebuah file misal removed.pl lalu ubah ijin akses-nya menjadi execute.

root@azzura root# vi removed.pl
root@azzura root# chmod +x removed.pl

Scipts siap digunakan, misal menghapus modul CGI

root@azzura root# ./remove.pl CGI
removing /usr/lib/perl5/5.8.3/CGI.pm
removing /usr/lib/perl5/5.8.3/CGI/Apache.pm
removing /usr/lib/perl5/5.8.3/CGI/Carp.pm
removing /usr/lib/perl5/5.8.3/CGI/Cookie.pm
removing /usr/lib/perl5/5.8.3/CGI/Fast.pm
removing /usr/lib/perl5/5.8.3/CGI/Pretty.pm
removing /usr/lib/perl5/5.8.3/CGI/Push.pm
removing /usr/lib/perl5/5.8.3/CGI/Switch.pm
removing /usr/lib/perl5/5.8.3/CGI/Util.pm
removing /usr/share/man/man3/CGI.3
removing /usr/share/man/man3/CGI::Apache.3
removing /usr/share/man/man3/CGI::Carp.3
removing /usr/share/man/man3/CGI::Cookie.3
removing /usr/share/man/man3/CGI::Fast.3
removing /usr/share/man/man3/CGI::Pretty.3
removing /usr/share/man/man3/CGI::Push.3
removing /usr/share/man/man3/CGI::Switch.3
removing /usr/share/man/man3/CGI::Util.3
removing /usr/lib/perl5/5.8.3/i586-linux-thread-multi/auto/CGI/.packlist

Perlu berhati-hati dalam menghapus karena perubahan ini akan mempengaruhi file POD perl.

troubleshouting

Karena biasanya module perl sering dipakai untuk web server (misal apache), maka cek ijin akses dari direktori (/usr/lib/perl....) dan file module perl yang akan dipergunakan user web (misal httpd). Cek file dan direktori tersebut, bisa tidak diakses selain root.

Pustaka


kembali ke [ daftar ] dokumentasi lainnya

Hosted by www.Geocities.ws

1