cpan命令和cpanm命令有什么不同?
它们似乎都安装了perl模块,那么有什么区别呢?
发布于 2016-07-08 09:41:08
大约从1997年开始,cpan就已经附带了CPAN shell。当您第一次运行它时,它会问一堆问题,并将答案保存在一个配置文件中。然后,您可以通过运行以下命令来安装模块:
cpan -i Module::Nameshell提供了搜索CPAN和查看分发文件内部的其他命令。
Jos Boumans启动了一个名为CPANPLUS (来自命令行的cpanp)的项目,该项目旨在创建一个更新、更好、更有特色的CPAN shell,但它从未完全完成到实现最初愿景的地步。
同时,MIYAGAWA认为cpanp试图做的太多了,世界真正需要的是一个更简单的shell,它做得更少,问的问题也更少(理想情况下根本不需要)。他创建了App::cpanminus,该命令提供cpanm命令并执行他想要做的事情。您可以使用它来安装一个模块(以及该模块的所有依赖项),命令如下:
cpanm Module::Name两者之间的主要区别在于,如果您有Perl,那么您应该已经有了cpan命令。然而,除非您安装了cpanm,否则您将不会拥有它。
发布于 2016-07-08 11:19:50
大多数现代Perl用户更喜欢cpanm,因为它很简单,而且主要是输出简短。
使用cpan可能会导致成百上千行的输出,因为它显示了它正在做的所有事情:下载、校验和、运行安装程序、解析、加载等等。这同样适用于每个依赖项。
另一方面,cpanm以更简洁、更通用的方式告诉您它正在做什么,即:获取、配置、构建和测试、完成。
所以用法上的主要区别是cpanm抑制了许多(通常)不相关的信息。有时,当模块出现故障时,您可能需要更多信息。这里有一个-v|--verbose标志,它基本上显示了cpan所能显示的所有内容。
此外,当您尝试安装某些需要用户输入的模块时,它们可能会“挂起”。这是因为要求您键入内容的输出被抑制了。您可以使用--interactive (或--verbose)标志来解决这个问题。
有关输出的比较,请参见幻灯片35-39 here或幻灯片37-41 here。(这些都来自同一个演示文稿。我只是复制链接,以防其中一个脱机。)
https://stackoverflow.com/questions/38257499
复制相似问题