原文:http://bbs.chinaunix.net/thread-3568555-1-1.html
唉,发现今时今日还有很多高手在使用 cpan 来安装模块,我这个东西推广了好久好久,大家还是很多人不知道,就象产品学上讲的,用户都不喜欢改变。新东西都很难接受。
真的,试下 cpanm 来安装 Perl 模块吧。。。安装 cpanm 以后使用,简单得不行了
- wget http://xrl.us/cpanm --no-check-certificate -O /sbin/cpanm && chmod +x /sbin/cpanm
- alias cpanm='cpanm --sudo --mirror http://mirrors.163.com/cpan --mirror-only'
转载本站文章请注明,转载自:扶凯[ http://www.php-oa.com ]
本文链接: http://www.php-oa.com/2010/05/05/perl-cpanminus-cpan.html
Perl 中安装模块很多人头痛的问题,其实解决这个问题的方法实在太多,当然对于新人。太多的选择反到让人很晕。也可能根本就不知道有那些选择。
我以前写过一个CPANPLUS 的使用,CPANPLUS 是用来替换老的 cpan 的。更加好用,更加人性,包括删除模块什么都行。链接地址: http://www.php-oa.com/2010/02/04/cpanplus-per.html
CPAN Shell 和 CPANPLUS 的问题
但总体来讲,这个使用还是有些麻烦,如果用户本身没有 CPANPLUS 这个,单安装这个 CPANPLUS 就是一个很麻烦的事.因为它本身就依靠很多其它的模块才能正常跑。让用户会更加头痛。
Perl 本身的 CPAN Shell 启动麻烦,还要配置大量的内容,对新手来说,只要一个能立即上手的 Perl 环境快速的开发就行了,没有必要给时间浪费在这个上面。
CPANMinus 的优点
因为以上问题,无所不能的 Perl 爱好者总是有各种方法来使问题简单。下面我要讲的这个就是能使大家安装模块更加简单的 非常棒的方法。
这个 CPANMinus 有什么神奇。其中,下载后就能直接使用,不需要任何其它的模块(当内 Perl 本身的 Module::Build,ExtUtils::MakeMaker 和 C Compiler 还是要,这个是系统就有的)。有没有 Root 权限都不重要。不是 Root 会自动安装到当前用户的目录。
CPANMinus 的安装
单文件安装,只这样安装其实就好了。
$ wget http://xrl.us/cpanm --no-check-certificate -O /sbin/cpanm
$ chmod +x /sbin/cpanm
完整版本安装 使用了上面,没有必要运行下面的方法,
$ wget -O- --no-check-certificate | perl - --sudo --self-upgrade \
--mirror http://mirrors.163.com/cpan --mirror-only
安装完了。。。。太 easy 了,因为他就一个文件.这个例子是下载 cpanm 以后,直接用他来安装第一个软件叫 App::cpanminus。其实就是它自己.
CPANMinus 的使用
$ cpanm ModuleName
例如
$ cpanm YAML
Fetching http://search.cpan.org/CPAN/auth ... MK/YAML-0.71.tar.gz ... OK
Configuring YAML-0.71 ... OK
Building and testing YAML-0.71 for YAML ... OK
Successfully reinstalled YAML-0.71
使用也容易吧,他还可以直接加本身的模块名,远程的模块的 Url 之类。容易吧
CPANMinus 的技巧
因为国内常常被 gfw 掉,所以我们感觉 cpanm 非常慢,其实主要原因是因为我们连接不到国外的服务器,cpanm 新的版本会从镜象服务器取 02packages.txt.gz 这个文件回来,我们可以加一个 `–mirror-only` 让他只从镜象取,然后在给镜象指向国内就好
可以修改 .bashrc
alias cpanm='cpanm --sudo --mirror --mirror-only'
本地镜象使用这条
alias cpanm='cpanm --mirror ~/CPAN/ --mirror-only'
注意 –mirror-only 只有在比较新的 cpanm 上才可以使用,老的 cpanm 不能正常使用。。。大约 1.0 的版本不行。。。
其它一些技巧
删除模块
很多人都问怎么删除 CPAN 上的模块,下面我来教大家一个新的模块,App::pmuninstall 这个先安装。
$ cpanm App::pmuninstall
使用很简单
$ pm-uninstall YAML # YAML 只是一个模块的名字,任何你要删除的模块的名字都能加在这
安装和更新最新的模块(查所有安装的模块和版本)
我们常常很多模块老了,我们想用最新的 cpan 本身没有好的控制机制,所以我们在这可以使用一个模块来完成同样的功能,叫 App::cpanoutdated 这个可以用来查找本机上安装的模块,有那些可以更新,并会列出来。 一样使用 cpanm 来安装,我就不讲安装方法了。
$ cpan-outdated
M/ML/MLEHMANN/AnyEvent-5.31.tar.gz
M/ML/MLEHMANN/AnyEvent-HTTP-2.03.tar.gz
N/NA/NAIM/AnyEvent-HTTPBenchmark-0.09.tar.gz
P/PH/PHRED/Apache-Reload-0.11.tar.gz
P/PH/PHRED/Apache-SizeLimit-0.95.tar.gz
P/PH/PHRED/Apache-Test-1.36.tar.gz
B/BI/BINGOS/Archive-Extract-0.48.tar.gz
B/BI/BINGOS/Archive-Tar-1.76.tar.gz
S/SM/SMUELLER/Attribute-Handlers-0.88.tar.gz
S/SM/SMUELLER/AutoLoader-5.71.tar.gz
F/FL/FLORA/autouse-1.06.tar.gz
R/RU/RURBAN/B-C-1.29.tar.gz
R/RU/RURBAN/B-Debug-1.16.tar.gz
F/FL/FLORA/B-Lint-1.12.tar.gz
R/RG/RGARCIA/base-2.15.tar.gz
F/FL/FLORA/bignum-0.25.tar.gz
我们可以直接传给 cpanm 来安装
$ cpan-outdated | cpanm
查看 Perl 模块的相关信息(安装位置,版本等)
只要安装 App::pmodinfo这个模块就行,然后就能使用下面的这个功能了
-v –version
-f –full
-h –hash
-l,–local-modules
-u,–check-updates
$ pmodinfo --full Redis: ump
Redis: ump is installed with version 0.013.
cpan page : http://search.cpan.org/dist/Redis-Dump
filename : /Users/thiago/perl5/perlbrew/perls/perl-5.14.0/lib/site_perl/5.14.0/Redis/Dump.pm
ctime : 2011-07-05 19:56:54
POD content: yes
Last cpan version: 0.013