[Perl Talks] 使用 CPANMinus 来安装 Perl 模块和其它技巧
转载本站文章请注明,转载自:扶凯[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- http://xrl.us/cpanm --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/authors/id/A/AD/ADAMK/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 http://mirrors.163.com/cpan --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::Dump
Redis::Dump 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



















这模块不错..会自动处理依赖关系吧..
会
不错..
路过学习一下.
好给力。。。还有比它更牛的么?
$ pm-uninstall YAML 这个命令我在cpanm App::pmuninstall 以后怎么显示没这个命令呢?
@zyg0x0
不好意思i 刚才那个没装成功 没问题了 不好意思
呵呵,自己能研究成最好