专栏名称: 生信媛
生信媛,从1人分享,到8人同行。坚持分享生信入门方法与课程,持续记录生信相关的分析pipeline, python和R在生物信息学中的利用。内容涵盖服务器使用、基因组转录组分析以及群体遗传。
目录
相关文章推荐
51好读  ›  专栏  ›  生信媛

安装perl模块其实没有那么难

生信媛  · 公众号  · 生物  · 2018-03-21 18:06

正文

请到「今天看啥」查看全文


由于生物信息早期最多用的语言是perl,因此不可避免就要用别人的perl脚本或者基于perl的项目来处理数据。其实 NGS测序数据的质量控制 (Quality Control,QC) 里就为了使用prineq讲到了非root的perl模块安装方法。

使用perl脚本和使用其他编程语言的脚本没啥不同,毕竟你只要传入参数,它就能给你结果。因此对于我们这些不用perl写脚本,只想调用的人而言,唯一要学会的事情就是 如何安装perl的模块 ”。

关于perl模块安装,最古老的方法就是使用 perl - MCPAN - e shell 或者是 cpan (两者等价),这也是我最先接触的方法,这里介绍如何使用 local :: lib cpanm 实现非root权限安装perl模块。

使用系统自带的perl

安装任何软件最怕遇到的问题就是权限问题,因此我们需要先安装 local :: lib ,使得我们能够将perl模块安装到任何地方,简单的说就是安装到我们的家目录下

第一步,下载源代码进行编译安装

  1. wget https://cpan.metacpan.org/authors/id/H/HA/HAARG/local-lib-2.000024.tar.gz

  2. tar xf local-lib-2.000024.tar.gz

  3. cd local-lib-2.000024

  4. perl Makefile.PL --bootstrap=~/opt

  5. make test && make install

第二步: 设置环境变量 ,使得perl在安装模块的时候会优先使用我们指定的路径

  1. echo 'eval "$(perl -I$HOME/opt/lib/perl5 -Mlocal::lib=$HOME/opt)"' >> ~/.bashrc

先用 perl - I$HOME / opt / lib / perl5 - Mlocal :: lib = $HOME / opt 表示运行前先添加 $HOME / opt / lib / perl5 到自己的搜索路径 @INC 中,然后传入参数 $HOME / opt 执行模块 local :: lob ,这个模块的执行结果会输出如下内容

  1. Attempting to create directory /home6/wangjw/opt

  2. PATH="/home/zgxu/opt/bin${PATH:+:${PATH}}"; export PATH;

  3. PERL5LIB="/home/zgxu/opt/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;

  4. PERL_LOCAL_LIB_ROOT="/home/zgxu/opt${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;

  5. PERL_MB_OPT="--install_base \"/home/zgxu/opt\""; export PERL_MB_OPT;

  6. PERL_MM_OPT="INSTALL_BASE=/home/zgxu/opt"; export PERL_MM_OPT;

这些就作为 eval 的参数进行执行,也就是说你重启终端后后, PERL5LIB PERL_LOCAL_LIB_ROOT , PERL_MB_OPT , PERL_MM_OPT 这几个变量就会重新设置,以此保证你后续安装perl模块时,会优先安装到自己的选择的目录

第三步:安装cpam. 由于之前已经配置了 local :: lib ,因此perl编译的工具都会默认安装到 ~/ opt 目录下

  1. wget https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7043.tar.gz

  2. tar xf App-cpanminus-1.7043.tar.gz

  3. cd  App-cpanminus-1.7043

  4. perl Makefile.PL

  5. make test && make install

第四步:使用国内镜像提高下载速度,可以通过别名的方式实现

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

之后便可以使用 cpanm Module :: Name 安装任意的软件了。

自己编译一个perl

自己编译Perl的好处就在于之后的perl模块都会安装到自己的Perl目录下,而不会对系统造成影响。

  1. cd ~/src

  2. wget -4 http://www.cpan.org/src/5.0/perl-5.26.1.tar.gz

  3. tar xf perl-5.26.1.tar.gz

  4. cd perl-5.26.1

  5. ./Configure -des -Dprefix=$HOME/opt/sysoft/perl-5.26.1

  6. make test

  7. make install

然后用 perl - e '{print "$_\n" foreach @INC}' 会发现perl只会在自己的目录 ~ /opt/ sysoft / perl - 5.26 . 1 下查找模块。那么使用 cpanm Module :: Name 安装的任何包都只会安装到 ~ /opt/ sysoft / perl - 5.26 . 1 下,你也不需要安装 local :: lib

参考资料

perl模块安装大全 : 这篇文章基本上介绍了perl模块的安装的所有可能方法,非常全面,如果我这一篇文章解决不了你的问题,那么就需要看Jimmy写的啦







请到「今天看啥」查看全文