沒(méi)有學(xué)習(xí)過(guò)perl語(yǔ)言,但是某些程序需要使用perl,就總結(jié)perl的一些包的安裝方法
在cpan https://metacpan.org/ 搜索對(duì)應(yīng)的包的名稱(chēng)
選擇有黃色方框鏈接。
在左邊找到Download下載源碼

下載完成后。
tar -zxvf DBI-1.643.tar.gz
cd DBI-1.643
perl Makefile.PL
make
make test
make install
非root折磨死人,也安裝不上makemaker,下載的包編譯需要一堆依賴(lài)。決定自己編譯一個(gè)perl
在自己目錄安裝perl,注意configure時(shí)候,-Dusethreads -Uinstalluserbinperl一定要加上,用于開(kāi)啟多線(xiàn)程。否則,可能需要重新編譯。
cd ~/soft/perl
wget -4 http://www.cpan.org/src/5.0/perl-5.26.1.tar.gz
tar -zxvf perl-5.26.1.tar.gz
cd perl-5.26.1
./Configure -des -Dprefix=$HOME/soft/perl/perl-5.26.1 -Dusethreads -Uinstalluserbinperl
make -j8
make -j8 test
make -j8 install
echo 'export PATH=$HOME/soft/perl/perl-5.26.1:$PATH' >>~/.bashrc
source ~/.bashrc
請(qǐng)一定不要自己安裝perl的模塊并配置到環(huán)境變量,一定要用cpan或cpanm安裝,否則是后患無(wú)窮。你再用capnm安裝其他模塊時(shí)候,會(huì)報(bào)錯(cuò)的。
如果是非root權(quán)限,需要指定目錄。
pecify the installation into ~/perl5
cd perl-module/
perl Makefile.PL PREFIX=~/perl5
make
make test
make install
echo 'export PERL5LIB="$HOME/perl5/:$PERL5LIB" '>>~/.bashrc
更多非root安裝perl包的方法,見(jiàn)參考
如果是Ubuntu,且是root,可以直接使用apt安裝
apt-get install libswitch-perl
非root安裝rpm包
rpm包查找地址https://pkgs.org/download/perl(ExtUtils::MakeMaker)選擇對(duì)應(yīng)的系統(tǒng),對(duì)應(yīng)的版本軟件的二進(jìn)制文件
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm
#解壓縮到本地目錄,生成`usr`文件
rpm2cpio perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm|cpio -idvm
mv usr perl-ExtUtils-MakeMaker
echo 'export PATH=/share/softwares/LWP/perl/perl-ExtUtils-MakeMaker/bin:$PATH' >>~/.bashrc
更多信息參考地址http://www.itdecent.cn/p/9e90b3524fe2,按照這個(gè)可以正確安裝。
先安裝local-lib
wget https://cpan.metacpan.org/authors/id/H/HA/HAARG/local-lib-2.000024.tar.gz
tar xf local-lib-2.000024.tar.gz
cd local-lib-2.000024
perl Makefile.PL --bootstrap=~/opt
make test && make install
echo 'eval "$(perl -I$HOME/opt/lib/perl5 -Mlocal::lib=$HOME/opt)"' >> ~/.bashrc
重啟終端
wget https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7043.tar.gz
tar xf App-cpanminus-1.7043.tar.gz
cd App-cpanminus-1.7043
perl Makefile.PL
make test && make install
添加國(guó)內(nèi)鏡像
echo 'alias cpanm="cpanm --mirror http://mirrors.163.com/cpan --mirror-only"' >>~/.bashrc
source ~/.bashrc
只有在安裝 cpanm后,需要自己在~/ .cpanm目錄下創(chuàng)建一個(gè)文件才可以用。
mkdir ~/ .cpanm/CPAN
cd ~/ .cpanm/CPAN
touch MyConfig.pm
把下面內(nèi)容寫(xiě)入MyConfig.pm文件。
\$CPAN::Config = {
'auto_commit' => q[0],
'build_cache' => q[10],
'build_dir' => q[\$ENV{HOME}/.cpan/build],
'cache_metadata' => q[1],
'commandnumber_in_prompt' => q[1],
'cpan_home' => q[\$ENV{HOME}/.cpan],
'dontload_hash' => { },
'ftp' => q[/usr/bin/ftp],
'ftp_passive' => q[1],
'ftp_proxy' => q[],
'getcwd' => q[cwd],
'gpg' => q[/usr/bin/gpg],
'gzip' => q[/bin/gzip],
'histfile' => q[\$ENV{HOME}/.cpan/histfile],
'histsize' => q[100],
'http_proxy' => q[],
'inactivity_timeout' => q[0],
'index_expire' => q[1],
'inhibit_startup_message' => q[0],
'keep_source_where' => q[\$ENV{HOME}/.cpan/sources],
'lynx' => q[/usr/bin/lynx],
'make' => q[/usr/bin/make],
'make_arg' => q[],
'make_install_arg' => q[],
'make_install_make_command' => q[/usr/bin/make],
'makepl_arg' => q[PREFIX=\$ENV{HOME}/perlmods],
'mbuild_arg' => q[],
'mbuild_install_arg' => q[],
'mbuild_install_build_command' => q[./Build],
'mbuildpl_arg' => q[],
'ncftpget' => q[/usr/bin/ncftpget],
'no_proxy' => q[],
'pager' => q[less],
'prerequisites_policy' => q[follow],
'scan_cache' => q[atstart],
'shell' => q[/bin/bash],
'tar' => q[/bin/tar],
'term_is_latin' => q[0],
'term_ornaments' => q[1],
'unzip' => q[/usr/bin/unzip],
'urllist' => [q[ftp://cpan.cse.msu.edu/], q[ftp://cpan-du.viaverio.com/pub/CPAN/], q[ftp://cpan.mirrors.redwire.net/pub/CPAN/], q[ftp://cpan.hostrack.net/pub/CPAN]],
'use_sqlite' => q[0],
'wget' => q[/usr/bin/wget],
};
1;
__END__
每次修改完環(huán)境變量后,最好重啟終端。我最開(kāi)始一直提示是缺少makemaker包,通過(guò)在自己目錄安裝新版本的perl解決了這個(gè)問(wèn)題。
使用cpanm安裝perl包
#安裝bioperl(模塊比較多,安裝時(shí)間比較長(zhǎng))
cpanm Bio::Perl
#安裝DBI
cpanm DBI
#安裝LWP
cpanm LWP
#安裝Switch.pm
cpanm Switch
cpanm還可以指定安裝的鏡像地址或者從本地安裝
wget https://cpan.metacpan.org/authors/id/H/HA/HAARG/Catalyst-Devel-1.42.tar.gz
#下載完成后,直接從本地安裝
cpanm ./Catalyst-Devel-1.42.tar.gz
查看已經(jīng)安裝有那些perl的模塊或包。
復(fù)制下面這段命令到一個(gè)新的文件,命名為check.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("%-12s -- %s\n", $_, $ver);
}
exit ;
運(yùn)行這個(gè)新的檢查腳本,perl check.pl即可輸出所有的包和版本號(hào)。
有時(shí)候cpanm安裝包的時(shí)候會(huì)提示安裝成功了,一定要檢測(cè)一下安裝的版本號(hào)是否正確。有時(shí)候?qū)嶋H并沒(méi)有安裝成功。
分別查看DBI包和GD包的版本號(hào)。
perl -MDBI -E 'say DBI->VERSION'
perl -MGD -E 'say GD->VERSION'
如果你有自己或別人編寫(xiě)的*.pm格式的模塊文件
export PERL5LIB=/path/PfamScan:$PERL5LIB把這條命令加到~/.bashrc即可把/path/PfamScan目錄里的本地的*.pm包加到環(huán)境中。