Chinaunix首页 | 论坛 | 博客
  • 博客访问: 392985
  • 博文数量: 89
  • 博客积分: 3176
  • 博客等级: 中校
  • 技术积分: 1205
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-15 10:08
文章分类

全部博文(89)

文章存档

2011年(17)

2010年(19)

2009年(35)

2008年(18)

分类: Python/Ruby

2011-03-31 14:49:17

声明:

本文参考了扶凯的blog



一  用 CPAN 安装


1.  我用的系统是debian,默认只安装了perl-base,也就是可以使用perl,但没有cpan这个工具,故现在系统里安装perl这个工具。

  1. aptitude install perl
附加把perl-modules也安装上了,此时就可使用cpan工具来安装perl模块了。


2.  或者,更原始的办法,从下载CPAN模块的.tar.gz包来手动安装,CPAN模块式ANDK这个哥们写的。

  1. wget
  2. tar zxvf CPAN-1.9600.tar.gz
  3. cd CPAN-1.9600
  4. perl Makefile.PL
  5. make Makefile
  6. test Makefile
  7. make install Makefile

用cpan来安装的方法

方法1
  1. # perl -MCPAN -e shell
  2. cpan> install Bundle::CPAN   # 更新
  3. cpan> reload cpan            # 重新加载
  4. cpan> install Tk             # 安装pm,用install加上模块名就行了

方法2
  1. # perl -MCPAN -e 'install 模块名'

方法3
  1. # cpan 模块名


Perl 中的 cpan 的使用

 CPAN命令解释:get 下载模块对应的软件包,并解压。在Linux下放软件包的位置是.cpan/sources/authors/id/, 解压对应的位置是.cpan/build。

  1. # perl -MCPAN -e shell
  2. cpan> o conf init       # 初始化所有配置
  3. cpan> reload cpan       # 重新加载cpan,该命令将重新加载CPAN.pm。
  4. cpan> o conf urllist unshift # 只单独修改镜象为中国的官方镜象
  5. cpan> o conf commit     # 提交保存
  6. cpan> i YAML            # 查看 'YAML' 包的信息
  7. cpan> readme XML::LibXM # 显示在线 CPAN 上的信息
  8. cpan> reload index      # 重新加载索引
  9. cpan> autobundle        # autobundle命令,显示最近的CPAN上传信息
  10. cpan> recent            # rencent命令,显示最近上传的软件包


查询,删除,更新 Perl 模块

1.  看模块文档:
  1. perldoc Module::Name
2.  看模块是否安装:
  1. perl -MModule::Name -e 0
3.  查询模块是否安装,和安装的位置:
  1. perldoc -lm YAML
4.  删除模块,使用App::pmunintsall模块来实现:
先把 App::pmuninstall 安装上
  1. cpan App::pmuninstall
使用
  1. pm-uninstall 模块名
5. 看整个 Perl 的文档:
  1. perldoc perl
  2. perldoc perltoc
  3. perldoc perldoc

6. 看机器上都安装了哪些模块:
  1. perl -MExtUtils::Installed -le ‘print foreach ExtUtils::Installed->new->modules’
7. 看 Perl 内置安装了哪些模块:
  1. perl -MModule::CoreList -le ‘print foreach Module::CoreList::find_modules’
perldoc -l YourModule
perldoc -l CGI::Carp

8. 如何才能知道自己装了哪些PERL的模块?
  1. find `perl -e 'print "@INC"'` -name '*.pm' -print
9. 查询指定模块的位置:
  1. perl -MYAML -e'print $_ . " => " . $INC{$_} . "\n" for keys %INC'
10. 查询 当前使用的模块的版本:
  1. perl -MModule -e 'print $Module::VERSION;'
11. 安装和更新最新的模块
我们常常很多模块老了,我们想用最新的 cpan 本身没有好的控制机制,所以我们在这可以使用一个模块来完成同样的功能,叫  App::cpanoutdated 这个可以用来查找本机上安装的模块,有那些可以更新,并会列出来。 一样使用 cpanm 来安装,我就不讲安装方法了。

[root@fukai  ~]# 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 来安装:
  1. cpan-outdated | cpanm


给Perl打包成一个执行文件的方法
 

1.  打包

先安装PAR::Packer
  1. cpan PAR::Packer
使用下面的命令就可以打包了
  1. pp -c -o Get Get.pl
启动过滤器,来保护自己的 perl 程序
  1. pp -f Bleach -o hello hello.pl
或者
  1. pp -f Bytecode -o hello hello.pl
 
打包成.par
不包含核心模块:
  1. pp -p -o script.par script.pl
包含核心模块:
  1. pp -B -p -o script.par script.pl

Bleach过滤器是PAR自己实现的,而Bytecode这种过滤方式是Perl的标准格式(需要Perl 5.8.1以上版本支持)


2.  出了问题,怎么查

  1. scandeps.pl -V -e ‘use YAML;’
可以查出所有的包的依关系

3. Floating point exception
大多是因为 GCC 的版本不一样,建议相同的操作系统和位数




二  用 cpanm 安装


CPAN Shell 和 CPANPLUS 的问题
但总体来讲,这个使用还是有些麻烦,如果用户本身没有 CPANPLUS 这个,单安装这个 CPANPLUS  就是一个很麻烦的事.因为它本身就依靠很多其它的模块才能正常跑。让用户会更加头痛。

Perl 本身的 CPAN Shell  启动麻烦,还要配置大量的内容,对新手来说,只要一个能立即上手的 Perl 环境快速的开发就行了,没有必要给时间浪费在这个上面。
 

 CPANMinus 的优点
因为以上问题,无所不能的 Perl 爱好者总是有各种方法来使问题简单。下面我要讲的这个就是能使大家安装模块更加简单的 非常棒的方法。

这个 CPANMinus 有什么神奇。其中,下载后就能直接使用,不需要任何其它的模块(当内 Perl 本身的 Module::Build , ExtUtils::MakeMaker 和 C Compiler 还是要,这个是系统就有的)。有没有 Root 权限都不重要。不是 Root 会自动安装到当前用户的目录。
 
 CPANMinus 的安装
 
  1. curl -L | perl - App::cpanminus
 安装完了。。。。太 easy 了,因为他就一个文件.这个例子是下载 cpanm 以后,直接用他来安装第一个软件叫 App::cpanminus,其实就是它自己。


CPANMinus 的使用
  1. cpanm 模块名

例如
  1. # cpanm YAML
  2. Fetching ... OK
  3. Configuring YAML-0.71 ... OK
  4. Building and testing YAML-0.71 for YAML ... OK
  5. Successfully reinstalled YAML-0.71
使用也容易吧,他还可以直接加本身的模块名,远程的模块的 Url 之类。

最后附上 help
  1. # cpanm --help
  2. Options:
  3. -v,--verbose Turns on chatty output
  4. -q,--quiet Turns off the most output
  5. --interactive Turns on interactive configure (required for Task:: modules)
  6. -f,--force force install
  7. -n,--notest Do not run unit tests
  8. -S,--sudo sudo to run install commands
  9. --installdeps Only install dependencies
  10. --reinstall Reinstall the distribution even if you already have the latest version installed
  11. --mirror Specify the base URL for the mirror (e.g. )
  12. --mirror-only Use the mirror's index file instead of the CPAN Meta DB
  13. --prompt Prompt when configure/build/test fails
  14. -l,--local-lib Specify the install base to install modules
  15. -L,--local-lib-contained Specify the install base to install all non-core modules
  16. --auto-cleanup Number of days that cpanm's work directories expire in. Defaults to 7

  17. Commands:
  18. --self-upgrade upgrades itself
  19. --info Displays distribution info on CPAN
  20. --look Opens the distribution with your SHELL
  21. -V,--version Displays software version

阅读(2039) | 评论(0) | 转发(0) |
0

上一篇:为 Perl 定制 Vim

下一篇:Net::SSH::Perl

给主人留下些什么吧!~~