由於生物資訊早期最多用的語言是perl,因此不可避免就要用別人的perl指令碼或者基於perl的專案來處理資料。
使用perl指令碼和使用其他程式語言的指令碼沒啥不同,畢竟你只要傳入引數,它就能給你結果。因此對於我們這些不用perl寫指令碼,只需要呼叫的人而言,唯一要學會的事情就是**如何安裝perl的模組」。
關於perl模組安裝,最古老的方法就是使用perl -mcpan -e shell
或者是cpan
(兩者等價),這也是我最先接觸的方法,這裡介紹如何使用local::lib
和cpanm
實現非root許可權安裝perl模組。
安裝任何軟體最怕遇到的問題就是許可權問題,因此我們需要先安裝local::lib
,使得我們能夠將perl模組安裝到任何地方,簡單的說就是安裝到我們的家目錄下
wget
tar xf local-lib-2.000024.tar.gz
cd local-lib-2.000024
perl makefile.pl --bootstrap=~/opt
make test && make install
第二步:設定環境變數,使得perl在安裝模組的時候會優先使用我們指定的路徑
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
,這個模組的執行結果會輸出如下內容
attempting to create directory /home6/wangjw/opt
path="/home/zgxu/opt/bin$}"; export path;
perl5lib="/home/zgxu/opt/lib/perl5$}"; export perl5lib;
perl_local_lib_root="/home/zgxu/opt$}"; export perl_local_lib_root;
perl_mb_opt="--install_base \"/home/zgxu/opt\""; export perl_mb_opt;
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
目錄下
perl makefile.pl
make test && make install
echo 'alias cpanm="cpanm --mirror --mirror-only"' >>~/.bashrc
之後便可以使用cpanm module::name
安裝任意的軟體了。
自己編譯perl的好處就在於之後的perl模組都會安裝到自己的perl目錄下,而不會對系統造成影響。
cd ~/src
wget -4
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
然後用perl -e ''
會發現perl只會在自己的目錄~/opt/sysoft/perl-5.26.1
下查詢模組。那麼使用cpanm module::name
安裝的任何包都只會安裝到~/opt/sysoft/perl-5.26.1
下,你也不需要安裝local::lib
了
有一次我遇到這個問題
perl: symbol lookup error: /home/wangjw/perl5/lib/perl5/x86_64-linux-thread-multi/auto/cwd/cwd.so: undefined symbol
這個問題是因為用系統perl安裝的軟體被conda的perl優先查詢到導致,用perl -v
和perl -e ''
可以發現conda的perl查詢路徑低於我為系統perl安裝的路徑,解決方案如下
export perl5lib=""
windows裡如何安裝perl模組
我們在windows裡常用的perl直譯器是activeperl,這個直譯器是比較好的,因為他自帶乙個ppm perl package manager 通常我們可以在cmd中執行ppm,然後就會彈出圖形介面,從這個介面我們可以檢視已經安裝了哪些模組。下面主要講兩個在cmd中安裝perl模組的方法。1...
如何從CPAN安裝Perl模組
perl有乙個從外部匯入perl模組的機制,從外部匯入到perl的模組可以應用到perl指令碼中。cpan是乙個由全世界perl開發者貢獻出來的乙個功能特別強大的公共perl模組倉庫。因為perl本身自帶的核心perl模組數量比較少,因此你學要從cpan來安裝額外的perl模組。你可以從cpan上找...
perl安裝模組
1.cpan perl mcpan e shell o conf init 可以初始化cpan vi usr lib perl5 5.8.8 cpan config.pm 更改cpan配置主要是映象的配置 163映象 urllist q install net netmask 就自動安裝了 m 正則...