`

批量编译安装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.gz  MIME-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.gz  Spreadsheet-WriteExcel-2.39.tar.gz
Crypt-RC4-2.02.tar.gz  Email-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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics