cpan和cpanm有什么区别?

CJ7*_*CJ7 20 perl cpan cpanm

cpancpanm命令有什么区别?

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

Gra*_*ean 18

cpanCPAN shell自1997年左右开始随Perl一起发布.当你第一次运行它时,它会询问一堆问题并将答案保存在配置文件中.然后您可以通过运行以下命令安装模块:

cpan -i Module::Name
Run Code Online (Sandbox Code Playgroud)

shell提供了用于搜索CPAN和查看分发文件内部的其他命令.

一个名为CPANPLUS(cpanp来自命令行)创建一个更新,更好,更有特色的CPAN shell的项目由Jos Boumans创建,但它从未完全达到原始视觉已经实现的程度.

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

cpanm Module::Name
Run Code Online (Sandbox Code Playgroud)

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

  • 使用你喜欢的 - 要么是好的.我会使用`cpan -i App :: cpanminus`来安装cpanm,然后使用`cpanm`.我认为它更好,因为它更简单(当然不仅仅是因为它更新). (6认同)
  • 这两种工具都将从CPAN镜像下载所需的文件,解压缩发行版,然后启动make/make安装过程.您可以使用这些工具从CPAN安装模块.要说"实际上既不安装任何东西"是一个愚蠢的挑剔,几乎似乎是为了造成混乱. (3认同)
  • 这是一个有趣且内容丰富的历史,但OP问**"cpan和cpanm之间有什么区别"**.你的答案来自你的帖子结尾,并说*"两者之间的主要区别在于,如果你有Perl你应该已经有了cpan命令"*,所以它们几乎相同*除了你必须安装`cpanm `.这不正确,我必须-1 (2认同)

Jos*_*hua 12

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

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

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

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

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

对于输出的比较,看幻灯片35-39 这里 或幻灯片37-41 这里.(这些来自同一个演示文稿.我只是在一个人离线时重复链接.)

  • *"大多数现代perl用户更喜欢cpanm,因为它简单,主要是输出的简洁."*这需要引用,并且是答案中不必要的部分.你显然是一个"cpanm"粉丝而不说,并且不能信任给出一个事实账户.*"更简洁和一般的方式"*当然不可能两者兼而有之? (4认同)