2009年4月28日 星期二

安裝 CPAN 模組於 Home 目錄下

一般使用者在安裝 CPAN 模組時時常遇到的問題之一就是在無 root 權限的系統下安裝 Module 的困擾。要將 CPAN 模組安裝在自己的家目錄 (Home Directory) 底下其實相當容易。

For Perl5.10.0:

由於已經內建 CPANPLUS, 所以可以直接透過 cpanp 進入 CPANPLUS Shell:

$ cpanp

進入之後可透過 s conf 查看目前的設定,如:

# s conf

 allow_build_interactivity ''
base '/Users/foo/.cpanplus'
buildflags ''
cpantest ''
cpantest_mx ''
debug ''
dist_type ''
email 'cornelius@cpan.org'
extractdir ''
fetchdir '/Users/foo/cpan_download/'
flush '1'
force '1'
makeflags ''
makemakerflags ''
md5 ''
no_update '1'
passive ''
prefer_bin '1'
prefer_makefile '1'
prereqs '1'
shell 'CPANPLUS::Shell::Default'
show_startup_tip '1'
signature ''
skiptest '1'
storable '1'
timeout '5'
verbose '1'
write_install_logs '1'


一般使用者預設的 makemakerflags 選項應該都是空的。若要將 CPAN Module 安裝至
~/usr 則可直接

# s conf makemakerflags PREFIX=~/usr

接著:

# s save

# quit

跳出 CPANPLUS Shell.

接下來安裝 CPAN 模組則只要透過 cpanp 安裝模組則都會安裝至 PREFIX 底下了。如:

$ cpanp i Module::Install

最後,設置 CPAN 搜尋模組的目錄 ( PERL5LIB 環境變數 ) ,開啟 .profile 或者 .bashrc
設置:

export PERL5LIB=~/usr/lib/perl5/site_perl/5.10.0:$PERL5LIB
export PERL5LIB=~/usr/lib/perl5/5.10.0:$PERL5LIB

要稍微注意的是,在 Ubuntu Linux 底下 perllib 會在 ~/usr/share/lib/perl/..../ 下面。

對於一些模組會安裝 script 的,我們也需設置 PATH 變數:

export PATH=~/usr/bin:$PATH

即可。

另外,對於直接下載回來的 CPAN Module tar.gz 檔,也可以透過 PREFIX 來安裝:

tar xvf Foo-Bar-0.01.tar.gz
cd Foo-Bar-0.01
perl Makefile.PL PREFIX=~/usr
make install

即可。