zoukankan      html  css  js  c++  java
  • 【Perl】如何安装Bioperl模块?


    生信软件绕不过Perl,Perl绕不过Bioperl。而Bioperl的安装总让人头大,尤其是对普通用户。以下错误你肯定经常遇到:

    Can't locate Bio/Seq.pm in @INC (you may need to install the Bio::Seq module) (@INC contains:.....
    

    这里记录尝试的过程,虽然前面几个失败了。但方向是没有错的,只是Bioperl太大,依赖的模块太多了,即便你用conda隔离,某个地方也会依赖系统环境,导致安装失败。这些方法也许对我而言失败了,说不定你一尝试就成功了,就是这么玄学。

    失败尝试一:使用cpanm

    有两个方法,一是直接用conda,简单。

    conda install -c conda-forge perl-app-cpanminus
    

    二是用系统自带的perl安装和配置local::lib和cpanm。这个详见徐州更的博文:如何安装perl模块

    # 安装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
    # 安装cpanm
    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
    

    这时,你可以用cpanm ModuleName来安装模块了,普通模块安装或许没问题。不过前面说了,Bioperl是个庞然大物,你等了很久,很可能还是装不上某些依赖的,即使你用--force强制安装。

    失败尝试二:使用CPAN

    前面的方法不行,我干脆自己源码编译一个新的Perl,用cpanm或CPAN来继续肝。

    cd ~/src
    wget -4 http://www.cpan.org/src/5.0/perl-5.26.1.tar.gz
    tar xf perl-5.26.1.tar.gz
    cd perl-5.26.1
    ./Configure -des -Dprefix=$HOME/opt/sysoft/perl-5.26.1
    make test
    make install
    

    cpanm还是一样的,能安装简单模块,但对于Bioperl,就是不行!

    尝试CPAN:

    cpan
    install Bio::Seq
    

    因为没用国内的镜像,可能比cpanm还要更长时间,等来的确是Error,一些依赖照样装不上。

    成功尝试:直接conda安装bioperl

    Perl模块一开始没想着用conda安装,因为很少有模块能直接安装。但既然bioperl是个庞然大物,何不查看试下。果然是可以的:

    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应该也可以,我没试,你两个都可加入。

    source一下成功。此时你可以用perl -V查看一下你当前的@INC。

    查看已安装模块:perldoc perllocal

    没有尝试:源码安装bioperl

    直接源码下载bioperl安装,我没有试。以上都不行的话,你可以试试,可参考:bioperl安装(无需root权限)

  • 相关阅读:
    shared_ptr weak_ptr boost 内存管理
    _vimrc win7 gvim
    qt 拖放
    数学小魔术 斐波那契数列
    qt4 程序 移植到 qt5
    (转)字符串匹配算法总结
    c++11
    BM 字符串匹配
    编译qt5 demo
    c++ 类库 学习资源
  • 原文地址:https://www.cnblogs.com/jessepeng/p/14700603.html
Copyright © 2011-2022 走看看