批量编译安装Perl模块
[*]查看当前系统安装模块
[*]批量编译安装Perl模块
[*]验证
一、查看当前系统安装模块
# cat CheckModule.pl
#!/usr/bin/perl
use strict;
use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new();
my @modules = $inst->modules();
foreach(@modules) {
my$ver = $inst->version($_) || "???";
printf("%-25s -Version- %-25s\n", $_, $ver);
}
exit;
执行结果
# ./CheckModule.pl
Perl -Version- 5.8.8
可见当前系统只有Perl解释器.
二、批量编译安装的Perl模块
需要安装的模块
# ls
Cairo-1.104.tar.gz DCOP-0.038.tar.gz
ExtUtils-PkgConfig-1.15.tar.gzMIME-Lite-3.029.tar.gz
Spreadsheet-ParseExcel-0.59.tar.gz CheckModule.pl
Digest-Perl-MD5-1.8.tar.gz Glib-1.302.tar.gz
OLE-Storage_Lite-0.19.tar.gzSpreadsheet-WriteExcel-2.39.tar.gz
Crypt-RC4-2.02.tar.gzEmail-Date-Format-1.004.tar.gz
Pango-1.224.tar.gz Tk-804.031.tar.gz
DBI-1.628.tar.gz ExtUtils-Depends-0.306.tar.gz
PAR-1.007.tar.gz
除了CheckModule.pl以外的所有tarball.
如果一个个安装的话是愚蠢的SA该做的事情.自行撰写一个autoinstall.pl
# cat autoinstall.pl
#!/usr/bin/perl
use strict;
use Shell;
#State Variable
my @DataList = (); my @TarList = ();
#Get installing Module
my @DataList = `ls`;
#Filtering is not tarball
for(@DataList){
chomp;
if(m/\.tar\.gz$/){ push (@TarList,$_); }
}
#Unzip and install
for(@TarList){
tar("-zxvf $_");
s/(.*)\.tar\.gz/$1/;
chdir("$_");
system("perl Makefile.PL");
make();
make("install");
chdir("..");
print "$_ Successful installation!\n";
}
执行完毕.
三、验证
执行CheckModule.pl验证
# ./CheckModule.pl
Cairo -Version- 1.104
Crypt::RC4 -Version- 2.02
DBI -Version- 1.628
DCOP -Version- 0.038
Digest::Perl::MD5 -Version- 1.8
Email::Date::Format -Version- 1.004
ExtUtils::Depends -Version- 0.306
ExtUtils::PkgConfig -Version- 1.15
Glib -Version- 1.302
MIME::Lite -Version- 3.029
OLE::Storage_Lite -Version- 0.19
PAR -Version- 1.007
Pango -Version- 1.224
Perl -Version- 5.8.8
Spreadsheet::ParseExcel -Version- 0.59
Spreadsheet::WriteExcel -Version- 2.39
Tk -Version- 804.031
页:
[1]