2012年4月27日

[Perl] 本地端使用 CPANPLUS 安裝 CPAN 模組(CPAN::Mini 應用)

CPAN 是 Perl 吸引人的特點之一,裡面有成千上萬個模組,都是全世界程式設計師的智慧結晶,所以要寫一個功能前都會先上來看看是否有相似的模組就不用自己再發明輪子。但是通常在企業的 production 環境都是在內部網路,所以根本無法連到在 Internet 的 CPAN 網站。
還好有一位大師 Ricardo SIGNES 解決了這個問題,CPAN:Mini 模組把現在最新的 CPAN 模組蒐集起來 (2012/04 mirror 約 2G),我們可以利用可以連線至 Internet 的機器,把模組 mirror 下來,再傳到內部網路主機即可在裡面安裝 CPAN 模組。

可先手動安裝 CPAN::Mini  之後你在命令列就有 minicpan 指令

再執行
minicpan -l /minicpan -r http://ftp.funet.fi/pub/languages/perl/CPAN

就開始 mirror 了,至少需 2HR 以上時間,完成後進 CPANPLUS 開始初始設定
1. 輸入 cpanp
2. 輸入 s reconfigure
3. 選 7> Select mirrors
4. 看到 Would you like to keep your current hosts? [Y/n]: 選 n
5. 再選 2> Custom
6. 填上剛剛 mirror 到 /minicpan 的路徑  
file:///minicpan (注意有三個 / )
7. 按 Enter 跳出
8. 選 4> Quit
9. 選 9> Save & exit
10. 輸入 q 離開
11. 再進入 cpanp
接下來就可以不用網路,在本地安裝 CPAN 模組囉,CPANPLUS 簡易用法請參考如下

CPANPLUS 簡易用法
安裝模組  (模組名稱查詢)
i Date::Manip

移除模組
u  GD::Cairo

查詢模組
m Chart::Clicker

查詢作者
a 作者名

2013/11/29 補充
假設 mini cpan 已經解開在 Linux 的 /cpan/mirror 目錄
則使用 cpanm 進行安裝模組的話可以執行如下指令
cpanm --mirror /cpan/mirror --mirror-only  CPAN_MODULE_NAME

3 則留言:

Arrakeen 提到...

現在大家都用 cpanminus 了 :-D

IT 台灣郎 提到...

c9s 大大好,cpanminus 用起來簡潔許多,不過我還不太會設定讓 cpanm 讀取本地 minicpan 的 mirror,看來該研究一下了~

IT 台灣郎 提到...

找到方法設定 cpanm 對應 local cpan repository 了~