哪种cpan安装程序是正确的?(CPAN.pm/CPANPLUS/cpanminus)


70

有多个用于cpan模块的安装程序。我至少知道CPAN.pm(perl附带),CPANPLUS和cpanminus。

两者之间有什么区别?

什么情况需要使用一种?

我还应该了解其他模块安装程序吗?

Answers:


80

CPAN.pmcpan)是原始客户端。它随Perl一起提供,因此您已经拥有了。它具有最多的功能。尽管实际上每个人都接受默认安装,但它具有许多配置选项以自定义其工作方式。它很容易与local :: lib集成。


cpanminuscpanm)试图使零配置客户端自动为大多数用户执行正确的操作。它还设计为在资源有限的系统(例如VPS)上良好运行。它不随Perl一起提供,但易于安装。它很容易与local :: lib集成。

它的最大局限性是缺乏配置。如果您想做一些不寻常的事情,它可能不支持它


CPANPLUScpanp)试图制作一个Perl程序可以使用的CPAN API,而不是您从命令行使用的应用程序。该cpanp外壳更是一个证明的概念,我不知道任何真正的优势,使用它。


总之,我建议使用cpancpanm。如果配置时遇到问题cpan,请尝试cpanm。如果您的情况不正常,请尝试cpan


3
谢谢!该摘要正是我所需要的。
肖恩·麦克米兰

3
最新的cpan(1)还与local :: lib :)集成
brian d foy

我不能说现代的cpan(1),但是以前的cpanp在解决循环依赖方面要好得多。
Evan Carroll

是的,cpan或cpanm。没关系
dns

2
也许可以将其修改为包括在内cpm
辛巴克

12

因为它太主观,所以不可能回答这个问题。:)

从我的角度来看:这cpanm是安装perl模块的最简单方法。您可以安装cpanm

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

然后,您可以使用以下简单的方法安装模块:

cpanm Some::Module

您也可以将cpanmCPAN(部分)镜像到本地计算机,因此IMHOcpanm是最常见的CPAN需求的最佳选择。


那真是太棒了!
2011年

1
嗯...在这里使用sudo通常不是一个好主意。
reinierpost 2013年

1
@reinierpost-当然,像往常一样:妄想症是系统管理员的正确心态。:)不过我下半年相信到文档:search.cpan.org/dist/App-cpanminus/lib/App/...
jm666

1
curl -L http://cpanmin.us | perl - --sudo App::cpanminus比什么都不执行简单吗?cpan如果已经安装,则已经安装perl
ikegami

@ikegami当然。对我来说,cpanm作品更好cpan。我是个傻瓜,我需要“可以正常使用”的东西。cpan对于我来说,这不是-需要太多的学习;)-但是,对于perl-monks来说,这是“正确的”工具。
jm666

7

我还应该了解其他模块安装程序吗?

如果您正在使用打包CPAN模块的Linux发行版,那么值得使用其软件包安装程序来安装模块。例如,Ubuntu / Debian有大量的CPAN模块,您可以使用'apt'安装,而Red Hat / Centos / Fedora的许多CPAN模块可以使用'yum'安装。


2
值得注意的是,您经常会看到项目建议不要使用这种方法,因为这些软件包通常已经过时,并且将您绑定到单个系统范围的版本,该版本包含在所有已安装模块的单个系统范围内。对于简单的情况,这确实是可行的方法,但是值得学习local :: lib / cpan(或pip / virtualenv,rbenv / rvm)。
山姆·布莱曼

@SamBrightman您可能想回答以下问题或发表评论:serverfault.com/questions/805850/…–
bli

4

CPAN是标准。cpanminus(cpanm)提出的问题更少(大多数时候是最好的)。我不知道有人使用cpanplus。

由于这些模块的作用是下载,编译和安装(将文件放置在正确的位置),因此它们都应执行相同的任务。部分差异与您拥有的权限级别有关。也许您想在用户本地安装一些东西,然后在全局安装一些东西,那么您需要进行更精细的调整。开发人员可能还需要控制/中断调试过程等。

对于日常使用,请使用cpanm,除非您懒得安装它,否则CPAN很好。


1
我没有投票,但请继续阅读以下内容,为什么不对“ downvote-on-vote”进行强制性规定-他们提出了一些相当不错的论据...不需要用硬词。
Konerak

1
@Konerak,当我的答案与被接受并投票赞成的答案具有相同的内容(较早发布,而不是那么雄辩)时,我的愤怒不仅被忽略,而且被否决,我感到非常生气
Joel Berger

我明白了你的意思,我也很乐意解释我的不赞成票(至少这样我可以学到一些东西),但是请不要低估口才和
格调

0

cpanm使用更少的内存。这对于内存有限的环境(例如共享主机服务器)是一个更好的选择,例如共享的主机服务器,由于尝试使用超过可用内存的空间,在完成安装任务之前常规cpan可能会死掉。

根据cpanm(1.7044)文档“运行时,仅需要10MB RAM”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.