- 查看當前系統安裝模塊
- 批量編譯安裝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