cpan和cpanm有什么区别?

时间:2016-07-08 01:03:57

标签: perl cpan cpanm

cpancpanm命令有什么区别?

他们似乎都安装了perl模块,那有什么区别?

2 个答案:

答案 0 :(得分:18)

cpan CPAN shell自1997年左右开始随Perl一起提供。当你第一次运行它时,它会询问一堆问题并将答案保存在配置文件中。然后,您可以通过运行:

来安装模块
cpan -i Module::Name

shell提供了其他命令,用于搜索CPAN并查看分发文件。

Jos Boumans开始创建一个名为CPANPLUS(来自命令行的cpanp)的更新,更好,功能更强的CPAN shell的项目,但它从未完全到达原始愿景已经实现。

同时MIYAGAWA决定cpanp试图做太多,世界真正需要的是一个更简单的shell,它做了 less 并且问了更少的问题(理想情况下没有问题)所有)。他创建了App::cpanminus,它提供cpanm命令并完全按照他的意图行事。您可以使用它来安装模块(以及所有模块的依赖项),其命令如下:

cpanm Module::Name

两者之间的主要区别在于,如果你有Perl,你应该已经拥有cpan命令。除非/直到你安装它,否则你不会cpanm

答案 1 :(得分:9)

大多数现代Perl用户更喜欢cpanm,因为它简单,主要是输出的简洁。

使用cpan可以产生数百行输出,因为它显示了它正在做的一切:下载,校验和,运行安装程序,解析,加载,列表继续。这同样适用于每个依赖项。

另一方面,

cpanm以更简洁和一般的方式告诉您它正在做什么,即:获取,配置,构建和测试,完成。

因此,使用的主要区别在于cpanm抑制了许多(通常)不相关的信息。有时,当模块出现故障时,您可能需要更多信息。有一个-v|--verbose标记,基本上可以显示cpan所有的内容。

此外,当您尝试安装时,某些需要用户输入的模块似乎“挂起”。那是因为要求你输入内容的输出被抑制了。您可以使用--interactive(或--verbose)标记解决此问题。

有关输出的比较,请参阅幻灯片35-39 here 或幻灯片37-41 here。 (这些来自同一个演示文稿。我只是在一个人离线时重复链接。)