Linux | 安装perl

https://blog.csdn.net/tongxin_tongmeng/article/details/127901853

CPAN(Comprehensive Perl Archive Network:全面的Perl存档网络)是查找任何Perl有关的东西的中心仓库。它包含从整个Perl社区收集来的智慧:成百上千的 Perl模块和脚本,相当于好几本书的文档,以及整个Perl发布。如果有东西是用Perl写的,而且这个东西很有用而且是自由的,那么它很有可能就在CPAN上。CPAN在全世界都有镜象,你可以在位于http://www.perl.com/CPAN 的CPAN 路牌上找到离你最近的镜象。那块路牌会记住你选择的是哪个镜象并且你以后再访问 http://www.perl.com/CPAN/ (注意最后的斜杠)的时候就会自动重新定向到那个镜象。另外,你也可以从http://www.cpan.org开始。这个站的界面不同,但是数据是一样的。

authors

这个目录包含许多子目录,每个贡献者一个。比如,如果你想找 Lincoln Stein 那些写得非常好的 CGI 模块(现在是标准 Perl 版本的一部分了),并且你碰巧知道是他写了这些模块,那么你就可以到authors/Lincoln_stein 目录里看看。如果你不知道是他写了这些模块,那么你可以到下面描述的 modules 目录里找。

doc

这个目录保存所有风格的Perl文档,包括Perl的官方手册页的好几种不同的排列和格式,比如文本,HTML,PostScript,和Perl自身的 pod 格式。

modules

这个目录包含用Perl或者Perl和C混合写成的模块。

ports * 这个目录包含源代码,有时候还有一些预编译好的可执行的Perl移植,主要针对那些在标准版本里并不直接支持的操作系统,或者某些很难用的编译器。scripts * 这个目录包含少量从全世界各地发来的各种各样的Perl程序。它们可以用做独立的程序,或者也可以用做例子。目前,这里面还没有很多程序列出,不过,随着时间的推移,这个区域会变得越来越丰富。Perl Power Tools project (Perl 万能工具箱,PPT)也放在这里。PPT的目标是用Perl重新制作所有Unix 、工具。大多数标准的已经完成了,另外还有有些不那么标准的也做完了。

src

在这个目录里,你可以找到标准Perl发布版本的源程序。实际上,是两个标准 Perl版本的源程序,一个标记着 stable(稳定版),另外一个是 devel (开发版)。(该目录的索引页有详细解释。)它们都只是相应版本的链接。早我们写这些的时候,stable.tar.gz 是到 perl-5.6.0.tar.gz(通常的方案是:如果版本号的第二个数字是偶数,那么它就是正式版本,如果是奇数,那么是开发版。后面的.tar.gz 后缀有时候是 .tgz,表示它是一个标准的互联网格式:GNU 压缩的tar归档,常称做“tarball”)的符号链接。

一、安装

安装目录

mkdir /opt/perl && cd /opt/perl

安装包下载

wget https://www.cpan.org/src/5.0/perl-5.36.0.tar.gz --no-check-certificate

注意:https://www.cpan.org/src获取最新偶数版本下载链接并替换(偶数版本为稳定版)
安装包解压

tar -zxvf perl-5.36.0.tar.gz && rm -rf perl-5.36.0.tar.gz

安装配置

cd /opt/perl/perl-5.36.0 

./Configure -des -Dprefix=/opt/perl/perl-5.36.0 -Dusethreads -Uinstalluserbinperl

编译安装

make && make test && make install

环境变量

export PATH=/opt/perl/perl-5.36.0/bin:$PATH

export LD_LIBRARY_PATH=/opt/perl/perl-5.36.0/lib/:$LD_LIBRARY_PATH

卸载旧版本

yum -y remove perl

查看新版本

perl -v

二、下载包

a、手工安装的步骤

在cpan https://metacpan.org/ 搜索对应的包的名称,选择有黄色方框。在左边找到Download下载源码

从CPAN下载了DBI模块1.13版的压缩文件DBI-1.13.tar.gz。假设放在/usr/local/src(一般需要编译安装的软件,都放在此目录下安装)。

cd /home/Bird               #  假设放此目录。  
tar xvzf DBI-1.13.tar.gz   #  解压缩  
cd DBI-1.13                 # 进入新创建目录 
perl Makefile.PL             # 生成 Makefile 文件  
make                         # 建立模块    
make test                   # 测试模块   
make install                # 编译模块  

b、使用 CPAN 模块自动安装:

安装前需要先联上线,并且您需要取得root权限。

perl -MCPAN -e shell 

初次运行CPAN时需要做一些设置,如果您的机器是直接与internet相联(拨号上网、专线,etc.),  那么一路回车就行了,只需要在最后选一个离您最近的CPAN镜像站点。例如我选的是位于国内的中国自由软件库ftp://freesoft.cgi.gov.cn/pub/languages/perl/CPAN 。否则,如果您的机器位于防火墙之后,还需要设置ftp代理或http代理。

获得帮助

cpan>h  

列出CPAN上所有模块的列表

cpan>m  

根据关键字在CPAN上查找某个模块:

cpan[1]> i /scws/
CPAN: Storable loaded ok (v2.20)
Going to read '/home/orisun/.cpan/Metadata'
Database was generated on Sat, 17 Nov 2012 08:07:03 GMT
Distribution XUERON/Text-Scws-0.01.tar.gz
Module Text::Scws (XUERON/Text-Scws-0.01.tar.gz)
2 items found

安装模块

cpan>install DBI 

自动完成DBI模块从下载到安装的全过程。

退出

cpan>q 

查看perl函数的使用方法

perldoc  -f  func 

直接linux终端自动安装

Can't locate URI/Escape.pm in @INC

比如运行时发现报错如上,缺失模块,按照下面方式安装即可。

cpan URI::Escape

三、包管理

1.查看所有已安装的包
perldoc perllocal

# 或
instmodsh

# 或
find  `perl -e 'print "@INC"'` -name '*.pm'
2.查看某个已安装包的位置

以 ExtUtils::Install 为例

perldoc -l DBD::mysql

输出

[root@localhost ~]# perldoc -l ExtUtils::Install
/root/perl5/lib/perl5/ExtUtils/Install.pm
3.卸载已安装的包

cpan 没有直接的删除命令 使用 查询命令 找到需要删除的包,找到对应位置后 直接使用 rm 命令删除整个文件夹即可

四、conda 安装 perl 模块

1.bioperl模块

Can‘t locate Bio/SeqIO.pm in @INC问题极简解决

conda install -c bioconda perl-bioperl

安装成功。此时仍不能用bioperl,需要加入环境变量。怎么找到安装路径是个技术活。

$ find anaconda3/* -name "Seq.pm"
anaconda3/envs/repeat/lib/perl5/site_perl/5.22.0/Bio/Seq.pm
anaconda3/envs/compare/lib/perl5/site_perl/5.22.0/Bio/Seq.pm
anaconda3/lib/perl5/site_perl/5.22.0/Bio/Seq.pm
anaconda3/pkgs/perl-bioperl-1.6.924-4/lib/perl5/site_perl/5.22.0/Bio/Seq.pm

可以看到,其实我装其他软件的时候已然有了Bioseq。只是都没加入@INC 而已。很显然,最后一个bioperl是我刚安装的。我可以选择它,或者加以上全部模块路径都加入环境,反正perl从头到尾找就是了。

export PERL5LIB=~/biosoft/anaconda3/pkgs/perl-bioperl-1.6.924-4/lib/perl5/site_perl/5.22.0/:$PERL5LIB

Perl的环境变量是PERL5LIB,PERLLIB应该也可以,我没试,你两个都可加入。

五、安装过程中遇到的报错

是最好指定目录安装,默认安装目录在没有root权限的情况下后续根本无法安装模块。

1.make报错,具体报错如下

IO.xs: In function ‘XS_IO__Poll__poll’:
IO.xs:249: error: invalid application of ‘sizeof’ to incomplete type ‘struct pollfd’
IO.xs:253: error: invalid use of undefined type ‘struct pollfd’
IO.xs:253: error: dereferencing pointer to incomplete type
IO.xs:255: error: invalid use of undefined type ‘struct pollfd’
IO.xs:255: error: dereferencing pointer to incomplete type
IO.xs:257: error: invalid use of undefined type ‘struct pollfd’
IO.xs:257: error: dereferencing pointer to incomplete type
IO.xs:261: error: invalid use of undefined type ‘struct pollfd’
IO.xs:261: error: dereferencing pointer to incomplete type
IO.xs:262: error: invalid use of undefined type ‘struct pollfd’
IO.xs:262: error: dereferencing pointer to incomplete type

应该是路径包含的问题,解决办法比较简单

unset C_INCLUDE_PATH

就可以成功make。

参考:
https://www.jianshu.com/p/9e90b3524fe2
https://blog.csdn.net/tongxin_tongmeng/article/details/127901853
https://www.jianshu.com/p/589d3148b65f
https://blog.csdn.net/whatday/article/details/122251716

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

推荐阅读更多精彩内容