542179528 发表于 2017-5-17 10:06:24

批量编译安装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]
查看完整版本: 批量编译安装Perl模块