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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容