perl包的安装

没有学习过perl语言,但是某些程序需要使用perl,就总结perl的一些包的安装方法
在cpan https://metacpan.org/ 搜索对应的包的名称
选择有黄色方框链接。
在左边找到Download下载源码

image.png

下载完成后。

tar -zxvf DBI-1.643.tar.gz
cd DBI-1.643
perl Makefile.PL 
make
make test
make install

非root折磨死人,也安装不上makemaker,下载的包编译需要一堆依赖。决定自己编译一个perl
在自己目录安装perl,注意configure时候,-Dusethreads -Uinstalluserbinperl一定要加上,用于开启多线程。否则,可能需要重新编译。

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

请一定不要自己安装perl的模块并配置到环境变量,一定要用cpan或cpanm安装,否则是后患无穷。你再用capnm安装其他模块时候,会报错的。

如果是非root权限,需要指定目录。

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包的方法,见参考

如果是Ubuntu,且是root,可以直接使用apt安装
apt-get install libswitch-perl

非root安装rpm包
rpm包查找地址https://pkgs.org/download/perl(ExtUtils::MakeMaker)选择对应的系统,对应的版本软件的二进制文件

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

更多信息参考地址https://www.jianshu.com/p/9e90b3524fe2,按照这个可以正确安装。
先安装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

添加国内镜像

echo 'alias cpanm="cpanm --mirror http://mirrors.163.com/cpan --mirror-only"' >>~/.bashrc
source ~/.bashrc

只有在安装 cpanm后,需要自己在~/ .cpanm目录下创建一个文件才可以用。

mkdir ~/ .cpanm/CPAN
cd  ~/ .cpanm/CPAN
touch MyConfig.pm

把下面内容写入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__

每次修改完环境变量后,最好重启终端。我最开始一直提示是缺少makemaker包,通过在自己目录安装新版本的perl解决了这个问题。

使用cpanm安装perl包

#安装bioperl(模块比较多,安装时间比较长)
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

查看已经安装有那些perl的模块或包。

复制下面这段命令到一个新的文件,命名为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 ;

运行这个新的检查脚本,perl check.pl即可输出所有的包和版本号。

有时候cpanm安装包的时候会提示安装成功了,一定要检测一下安装的版本号是否正确。有时候实际并没有安装成功。

分别查看DBI包和GD包的版本号。

perl -MDBI -E 'say DBI->VERSION'
perl -MGD -E 'say GD->VERSION'

如果你有自己或别人编写的*.pm格式的模块文件

export PERL5LIB=/path/PfamScan:$PERL5LIB把这条命令加到~/.bashrc即可把/path/PfamScan目录里的本地的*.pm包加到环境中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354