2009年12月3日星期四

[PerlChina] Re: CN Perl Advent Day 2: Perl 开发环境建议

很好

On 12月2日, 上午9时23分, Fayland Lam <fayl...@gmail.com> wrote:
> http://perlchina.org/advent/2009/PerlDevENV.html
>
> from cnhackTNT
>
> =for advent_year 2009
>
> =for advent_day 2
>
> =for advent_title Perl 开发环境建议
>
> =for advent_author cnhackTNT
>
> 尽管几乎所有的 Linux/Unix 发行版都附带了 Perl 和相关的模块,但作为一个
> Perl 开发者,在构建自己的开发环境时,有些很好的习惯可以遵循,这样不会因
> 为安装和尝试各种模块的时候将你的系统搞脏,也不需要你动不动就祭出 root 大
> 神往系统目录里写文件等等。
>
> P<2009-01|昨天> A<http://www.fayland.org|Fayland> 给我们介绍了非常方便的
> M<local::lib> 模块,你当然可以按照他介绍的方法来管理需要自己额外安装的模
> 块,但对于想搭建自己得心应手的 Perl 开发环境的同学,我这里有另一种比较好
> 的建议。
>
> 首先,大部分 Linux/Unix 发行版(我不是歧视温道士系统,只是我个人不用它作
> 为开发环境)都是追求稳定的,A<http: //www.ubuntu.com|Ubunut> 也才升到
> perl5.10 不久,而我使用的 A<http://www.gentoo.org|Gentoo>, 其上的
> perl5.10 至今都还被 Mask 着呢。对于 Perl 来说,新的版本不但有 bug 的修
> 复,性能上的提升,还有很多新特性被加入进来,之前
> A<http://agentzh.spaces.live.com|agentzh> 对 perl5.10 的某个版本有过测
> 试,结果是存在比较明显的内存泄漏,而换用最新开发版中的 5.11 版本,这些问
> 题就不存在了。而且生产环境证明,perl 最新的 devel 版本还是比较靠谱的,因
> 此对于 perl 开发者,我强烈建议您自己编译一套
> A<http://www.cpan.org/src/perl-5.11.2.tar.gz|perl5.11.2>,这样做的好处主
> 要有几点:
>
> 1. 你可以享受到最新 perl 版本带来的一系列优势,包括 bug 的修复,新特性的
> 支持,性能的提升等。
>
> 2. 你可以根据需要调整你的 perl 编译参数,以达到关闭/开启某些特性和优化编
> 译的目的。
>
> 3. 你可以打造一个干净的 perl 版本,除了核心模块外,其他的模块你可以根据
> 项目需要来安装,批量部署的时候(系统体系相同的情况下),大部分时候你只需
> 要把自己指定的这个 perl 版本的目录整个 COPY 过去就OK了。
>
> 4. 与系统自带的 perl 完全独立,你对自己编译的 perl 做的动作完全不会影响
> 到系统自带的 perl,这样你的系统不会因为自带的 perl 或其模块被改动,而在
> 升级的时候碰到问题。
>
> 5. 你可以在系统自带的 perl 和自己编译的 perl 间自由切换 :-).
>
> 那么,接下来让我们看看如何来打造一个自己的 Perl 开发环境吧!
>
> 首先,我们需要下载最新的 Perl 源码,你可以选择同步 perl.org
> A<http://perl5.git.perl.org/perl.git|git 仓库中的 Perl 源码>,也可以选择
> 使用官方打包好的 A<http://www.cpan.org/src/perl-5.11.2.tar.gz|5.11.2
> 本>。我们以后者为例:
>
> =begin pre
>
> $ wgethttp://www.cpan.org/src/perl-5.11.2.tar.gz
> $ tar xzvf perl-5.11.2.tar.gz
> $ cd perl-5.11.2
>
> =end pre
>
> 你可以选择直接运行 Configure 脚本来交互式地完成这一过程,当然在你比较熟
> 悉这一过程的情况下,也可以直接给出你的配置参数免得浪费时间:
>
> =begin pre
>
> $ Configure -Dusedevel -Dprefix=$HOME/perl -des
>
> =end pre
>
> 以上参数的意思分别是:
>
> =begin pre
>
> -Dusedevel 使用开发版本的 perl,因为我们这个是 devel 版本,所以得加上这个
> -Dprefix=$HOME/perl 指定我们自己编译的这个 perl 将被安装到当前用户家目录
> 下的 perl 目录中
> -des 指定其他配置参数采用 perl 默认配置
>
> =end pre
>
> 当然就像之前所说的,你可以根据自己的需求来对编译的 perl 做一些优化和定
> 制,比如要不要 thread, 要不要大文件支持...等等,具体可参看源码目录内的
> INSTALL 和 README 文档,我自己是加上了 "-fomit-frame-pointer" 的 ccflags
> 参数。
> 等配置完成后,就可以 make, make test, make install 了:
>
> =begin pre
>
> $ make
> $ make test
> $ make install
>
> =end pre
>
> 一般来说,整个配置编译过程还是会比较顺利的。
> 恭喜!至此,属于你的 perl 已经编译安装完成了,那下一步就让我们来实现它和
> 系统自带 perl 的自由切换吧!
>
> 实现非常简单,请编辑你的 B<~/.bashrc> 文件, 加入:
>
> =begin pre
>
> alias devperl='PATH=${PATH_NORMAL:-$PATH};export
> PATH_NORMAL=$PATH;export PATH=/home/dev/perl/bin:$PATH;echo -e
> "\nPATH=$PATH\nPATH_NORMAL=$PATH_NORMAL\nDevperl!\n"'
> alias sysperl='PATH=${PATH_NORMAL:-$PATH};export PATH=$PATH;unset
> PATH_NORMAL;echo -e "\nPATH=$PATH\nSysperl!\n"'
>
> =end pre
>
> 这样,在默认情况下,你使用的都会是系统的 perl, 而一旦你想开始做些 perl
> 开发,或者通过 cpan 安装新模块,便可以在命令行敲入 B<devperl> 命令然后回
> 车,立马就切换过去了。此时你无论运行 cpan, perl 或是 perldoc, 调用的都是
> 你自己编译的 perl 中的相应程序,而且这时通过 cpan 安装的模块也通通会保存
> 到 B<~/perl> 下的相应目录里,不会弄乱你的系统。
>
> 想回到系统的 perl 怎么办?敲入 B<sysperl> 就OK了。
>
> 一般编译安装完 perl 后,通常我第一件事就是升级 M<CPAN> 模块,并安装一些
> 常用的其他模块。
>
> =begin pre
>
> $ devperl
> $ cpan Bundle::CPAN
>
> =end pre
>
> 在你编译的 perl 中,用 CPAN 来安装模块是我们强烈建议的方式,大多数情况
> 下,CPAN 会工作得很顺利,偶尔会碰到一些类似依赖顺序,外部库和 make test
> 失败的问题,但是只要仔细查看出错信息,解决起来还是很顺手的。
>
> A<http://www.enlightenedperl.org|Enlightened Perl> 的项目之一
> M<Task::Kensho> 帮你打包好了目前 CPAN TOP100 模块中最常用的一些模块,也
> 包括了昨天 Fayland 所说到的 M<local::lib>, 强烈建议 perl 开发者通过安装
> M<Task::Kensho> 来获得这些模块,当然由于它包含的模块比较多,可能需要花一
> 些时间,如果不想全部安装它们,你可以看看 M<Task::Kensho> 的 pod 文档,选
> 择自己感兴趣的模块加到你的 perl 中。
>
> 在完成这些之后,你可能需要挑一个顺手的编辑器,VIM/Emacs 可能会是大部分
> linux 开发的首选,但我想提到的是基于 Eclipse 的
> A<http://www.epic-ide.org|E-P-I-C> 这个 Perl IDE 也是非常不错的。此外,
> 我们还有目前很热的 A<http://padre.perlide.org|Padre>, 一款用 Perl 开发的
> IDE,功能和可用性也非常不错,相信之后 Fayland 会做介绍。
>
> 关于 VIM 上做 Perl 开发,来自台湾的
> A<http://c9s.blogspot.com/search/label/Vim|c9s> 有很多不错的技巧分享(需
> 翻墙)。
>
> ======================
> 我们还在寻求更多的文章支持
>
> 谢谢
>
> --
> Fayland Lam //http://www.fayland.org/
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

没有评论: