批量編譯安裝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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章