從cpan上安裝perl模塊

CPAN是perl的一個第三方源碼模塊庫,裏面有上百萬的perl模塊,用來支撐perl強大的功能,從生物工程到天文計算,從宏觀世界到原子力學,無所不有。爲了很方便的安裝perl模塊,有人作了一個CPAN模塊,用cpan命令來管理和安裝CPAN網站上的全部perl模塊。html


-------------------
CPAN

cpan命令
cpan命令其實也是一個perl腳本,對於不一樣版本的perl,可能cpan命令的功能強弱有所不一樣;執行cpan,咱們進入了一個相似bash的界面,暫且叫作cpanshell,cpanshell上能夠像bash同樣輸入命令,這個命令是CPAN所特有的,咱們通常經常使用到的cpan命令主要有:
help
help命令是顯示幫助信息,這裏麪包含了全部的cpan命令,雖然看上去只有一屏,但功能確是很是強大。

m //
這個是一個模式,用來查找perl模塊,有點像perl正則裏面的m//,用於匹配(match),但這裏m與//之間多了一個空格,且這裏的m指'modules',意思是根據模塊名稱查找,//內可使用正則; 同理a(authors)、b(bundles)、d(distributions)和i(in all)都有這種模式。

install
install命令是安裝perl模塊,通常是接模塊名稱,而不是壓縮包名字。好比DBD::mysql,而不是DBD-mysql,即

install DBD::mysqlmysql


CPAN配置
CPAN安裝是網絡安裝,若是沒有網絡,使用cpan命令是沒法安裝的,因此CPAN安裝的速度是與網絡有直接關係;固然咱們能夠選擇一個快速的鏡像站點來安裝CPAN模塊,那如何配置呢?

若是是第一次使用CPAN,那麼執行cpan命令的時候,cpan命令會給出配置的友好提示,不過不少人都對這個友好提示的繁冗程度顯得很不耐煩,不過新版本的CPAN模塊已經改善了這一缺點;若是不是第一次使用CPAN,而之前別人配置的CPAN鏡像站點出了問題不能下載,或鏡像站點太慢等等修改一下配置信息,能夠從新配置CPAN:
CPAN>o conf init

若不是root用戶,使用cpan命令或perl -MCPAN -e shell也能夠進行配置後安裝:
首先,配置好CPAN配置,這個配置可使用非root用戶配置好,配置好的內容通常在$HOME/.cpan/CPAN/MyConfig.pm文件內;

配置文件MyConfig.pm中配置信息中肯定有 'makepl_arg'=>q[PREFIX=~/perl] 這一行,~/perl爲你當前用戶有權限讀、寫和執行的目錄;

最後,設置 PERL5LIB 環境變量,把 ~/perl 下的相關目錄添加進 PERL5LIB。以 bash shell 爲例,在 ~/.bash_profile 裏添加以下便可:
export PERL5LIB=~/perl/lib:\
~/perl/lib/perl5/5.10.1/i386-linux-thread-multi:\
~/perl/lib/perl5/5.10.1:\
~/perl/lib/perl5/site_perl/5.10.1/i386-linux-thread-multi:\
~/perl/lib/perl5/site_perl/5.10.1:\
${PERL5LIB}

模塊檢測
運行
$perl -e 'use Module'

若是沒有任何輸出,則表示模塊 Module 成功安裝

打印模塊版本
$perl -MModule -e 'print $Module::VERSION;'

注意事項:
使用 CPAN 安裝模塊有時候會 make test 一步失敗。可到 $HOME/.cpan/build 的相應目錄下直接 make install;
第一次安裝 CPAN 時,能夠先安裝:
install Bundle::CPAN

install Bundle::CPANxxl?

這樣之後的安裝包安裝就會少須要的依賴,建議安裝。
linux


-------------------
CPANPLUS

默認的cpan命令安裝時,若是依賴到其它包時,cpan不能本身解決,而須要手動去解它們之間的依賴關係;在初次使用cpan時,有回答不少問題。若是使用CPANPLUS的話,它能自動給依賴的模塊安裝好,在 Perl5.10 中如今默認有 CPANPLUS Shell。

裝好CPANPLUS模塊後,在終端裏輸入:cpanp 便可進入CPANPLUS環境。下載後就能直接使用,不須要任何其它的模塊(當內 Perl 自己的 Module::Build,ExtUtils::MakeMaker 和 C Compiler 仍是要,這個是系統就有的),有沒有 Root 權限都不重要,非 root 會自動安裝到當前用戶的目錄下。

包安裝時取消安裝測試(可選)
若是以爲每次測試太花時間,能夠將測試取消:
# 取消安裝過程當中的測試:s conf skiptest 1

設置鏡象:s reconfigure

選擇鏡象地址
 選擇7 Select mirrors
 選擇 No 
 選擇 1 鏡象
 選擇 3 Asia
 選擇 9 China
 選擇鏡象地址,也同樣按上面的數字,最後面一個是退出這個,記的退出時保存.
 選擇 9 Save and exit

# 取消提問回答是否按Y
s conf prereqs 1
s save #記的存一下

使用參考總結
1. CPANPLUS 中安裝模塊,按i:CPAN Terminal> i  Bundle::CPAN

2. CPANPLUS 中刪除模塊,按u:CPAN Terminal> u YAML

3. CPANPLUS 中查找模塊,按m:CPAN Terminal>m Smart::Comments

4. CPANPLUS 中查找做者的模塊,按a:CPAN Terminal>a kai

5. CPANPLUS 中更新全部有新版本的模塊,按下o:
CPAN Terminal> o
aliased                        0.30    0.31    O/OV/OVID/aliased-0.31.tar.gz
Any::Moose                     0.13    0.21    S/SA/SARTAK/Any-Moose-0.21.tar.gz
AnyEvent                       7.02    7.04    M/ML/MLEHMANN/AnyEvent-7.04.tar.gz
AnyEvent::HTTP                 2.14    2.15    M/ML/MLEHMANN/AnyEvent-HTTP-2.15.tar.gz
Apache2::Cookie                2.12    2.13    I/IS/ISAAC/libapreq2-2.13.tar.gz
......

6. 自我更新: CPAN Terminal>s selfupdate all
按x來更新包的索引緩存。
git


-------------------
CPANM

'cpanm'是一個新近出現的能與'cpanp'不相上下的包安裝工具,這個工具能克服cpan的一系列缺點。
cpan App::cpanminus

cpanm的安裝
1)、單文件安裝
# wget https://raw.github.com/miyagawa/cpanminus/master/cpanm -O cpanm

2)、完整版本安裝
# wget https://raw.github.com/miyagawa/cpanminus/master/cpanm -O /usr/local/bin/cpanm
# perl cpanm --self-upgrade --mirror http://mirrors.163.com/cpan

是在下載 cpanm 之後,直接用他來安裝更新它本身,對應的模塊名爲:App::cpanminus。

cpanm的使用
使用方法很簡單,命令行後直接跟包模塊名便可,如:cpanm YAML::XS

這樣它會從cpan鏡像站上下載對應的tar包,後解壓安裝。至於它從哪裏取得包,依據於當時的源設置,能夠從本地磁盤上加載;它後面也能夠跟包的url,如:'http://search.cpan.org/CPAN/authors/id/I/IN/INGY/YAML-LibYAML-0.41.tar.gz',它會下載後自動安裝,如何對應的包有依賴,它會自動解決。

能夠對它進行從新配置時指定相關源,相對於修改其配置文件,具體可參考:使用minicpan建立本地CPAN http://www.freeoa.net/development/perl/diy-cpan-by-minicpan_1738.html

也能夠在當前shell環境裏,指定別名:
alias cpanm='cpanm --mirror http://mirrors.163.com/cpan'
alias cpanm='cpanm --mirror  /data/cpan/ --mirror-only'

Then to install any module from CPAN
cpanm Module::Name

The latest and greatest answer to this question is to use cpanm instead (also referred to as App::cpanminus or cpanminus)!

DESCRIPTION
cpanminus is a script to get, unpack, build and install modules from CPAN and does nothing else.

It's dependency free (can bootstrap itself), requires zero configuration, and stands alone. When running, it requires only 10MB of RAM.

To bootstrap install it:
curl -L http://cpanmin.us | perl - --sudo App::cpanminus

or if you are using perlbrew simply
perlbrew install-cpanm

From then on install modules by executing (as root if necessary)
cpanm Foo::Bar

-------------------
三者對比總結
CPAN是年代就爲久遠的,其成熟性和穩定性是無可置疑的,但同時它也有自身的缺點。

CPANPLUS是新出不久的,其特色是現代、智能、好用,與CPAN相同的是,它們都出如今'Core modules'中,估計之後打算用它作爲CPAN的替代者。

cpanm也是初生牛犢,它具備與cpanplus類似的優勢,但它更小巧、靈活,同時又不失其個性。

所以後二者是從此的主流,如何選擇就要看我的喜愛了。

-------------------
pm模塊管理
一、刪除模塊

上面介紹了多種安裝perl模塊的方法,若是我想刪除我機器上的模塊,應該怎麼操做呢,下面介紹一個新模塊:'App::pmuninstall'
安裝好後,會在PATH中生成一個命令行工具:pm-uninstall,使用它即可刪除相應的模塊。

使用很簡單    $ pm-uninstall YAML::XS   # 後跟模塊的名字,任何你要刪除的模塊的名字都能加在其後

二、檢查全部已安裝的模塊和版本
用於列出和檢查本地已經安裝的模塊,查看具體版本信息,使用'App::cpanoutdated' 這個能夠來實現:有那些能夠更新,並會列出來,可使用 cpanm或cpanp 來進行升級。
$ cpan-outdated --verbose --mirror file:///data/cpan/

咱們能夠將其結果做爲參數傳給 cpanm 來安裝:
# cpan-outdated | cpanm
# cpan-outdated | xargs cpan -i
github

更多關於查看系統中perl模塊安裝狀況時,可參考文章: 查看Perl模塊安裝路徑的"查看系統中已經安裝的Perl模塊"段落。sql

三、查看具體模塊的相關信息(安裝位置、版本等) 
只須要安裝' App::pmodinfo '這個模塊就能夠實現,其它相關參數以下:
-v –version
-f –full 
-h –hash
-l,–local-modules
-u,–check-updates
# pmodinfo --full DBD::mysql
DBD::mysql version is 4.016.
  cpan page  : http://search.cpan.org/dist/DBD-mysql
  filename   : /usr/lib/perl5/DBD/mysql.pm
    ctime    : 2012-08-14 07:54:01
  POD content: yes

  Last cpan version: 4.022shell


原文網址:http://blog.chinaunix.net/uid-20367477-id-4249130.htmlbootstrap

相關文章
相關標籤/搜索