生信軟件繞不過(guò)Perl,Perl繞不過(guò)Bioperl腐碱。而B(niǎo)ioperl的安裝總讓人頭大誊垢,尤其是對(duì)普通用戶。以下錯(cuò)誤你肯定經(jīng)常遇到:
Can't locate Bio/Seq.pm in @INC (you may need to install the Bio::Seq module) (@INC contains:.....
這里記錄嘗試的過(guò)程症见,雖然前面幾個(gè)失敗了喂走。但方向是沒(méi)有錯(cuò)的,只是Bioperl太大谋作,依賴的模塊太多了芋肠,即便你用conda隔離,某個(gè)地方也會(huì)依賴系統(tǒng)環(huán)境遵蚜,導(dǎo)致安裝失敗帖池。這些方法也許對(duì)我而言失敗了,說(shuō)不定你一嘗試就成功了谬晕,就是這么玄學(xué)碘裕。
失敗嘗試一:使用cpanm
有兩個(gè)方法携取,一是直接用conda攒钳,簡(jiǎn)單。
conda install -c conda-forge perl-app-cpanminus
二是用系統(tǒng)自帶的perl安裝和配置local::lib和cpanm雷滋。這個(gè)詳見(jiàn)徐州更的博文:如何安裝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
# 加入環(huán)境變量
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
# 設(shè)置鏡像
echo 'alias cpanm="cpanm --mirror http://mirrors.163.com/cpan --mirror-only"' >>~/.bashrc
這時(shí)不撑,你可以用cpanm ModuleName
來(lái)安裝模塊了,普通模塊安裝或許沒(méi)問(wèn)題晤斩。不過(guò)前面說(shuō)了焕檬,Bioperl是個(gè)龐然大物,你等了很久澳泵,很可能還是裝不上某些依賴的实愚,即使你用--force
強(qiáng)制安裝。
失敗嘗試二:使用CPAN
前面的方法不行兔辅,我干脆自己源碼編譯一個(gè)新的Perl腊敲,用cpanm或CPAN來(lái)繼續(xù)肝。
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還是一樣的维苔,能安裝簡(jiǎn)單模塊碰辅,但對(duì)于Bioperl,就是不行介时!
嘗試CPAN:
cpan
install Bio::Seq
因?yàn)闆](méi)用國(guó)內(nèi)的鏡像没宾,可能比cpanm還要更長(zhǎng)時(shí)間凌彬,等來(lái)的確是Error,一些依賴照樣裝不上循衰。
成功嘗試:直接conda安裝bioperl
Perl模塊一開(kāi)始沒(méi)想著用conda安裝铲敛,因?yàn)楹苌儆心K能直接安裝。但既然bioperl是個(gè)龐然大物羹蚣,何不查看試下原探。果然是可以的:
conda install -c bioconda perl-bioperl
安裝成功。此時(shí)仍不能用bioperl顽素,需要加入環(huán)境變量咽弦。怎么找到安裝路徑是個(gè)技術(shù)活。
$ 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
可以看到胁出,其實(shí)我裝其他軟件的時(shí)候已然有了Bioseq型型。只是都沒(méi)加入@INC 而已。很顯然全蝶,最后一個(gè)bioperl是我剛安裝的闹蒜。我可以選擇它,或者加以上全部模塊路徑都加入環(huán)境抑淫,反正perl從頭到尾找就是了绷落。
export PERL5LIB=~/biosoft/anaconda3/pkgs/perl-bioperl-1.6.924-4/lib/perl5/site_perl/5.22.0/:$PERL5LIB
Perl的環(huán)境變量是PERL5LIB,PERLLIB應(yīng)該也可以始苇,我沒(méi)試砌烁,你兩個(gè)都可加入。
source一下成功催式。此時(shí)你可以用perl -V
查看一下你當(dāng)前的@INC函喉。
查看已安裝模塊:perldoc perllocal
。
沒(méi)有嘗試:源碼安裝bioperl
直接源碼下載bioperl安裝荣月,我沒(méi)有試管呵。以上都不行的話,你可以試試哺窄,可參考:bioperl安裝(無(wú)需root權(quán)限)