为什么不鼓励在Windows上使用带有Strawberry perl的PPM perl模块?

时间:2011-10-08 01:00:10

标签: windows perl strawberry-perl

有人能说清楚为什么人们会发表评论吗?我在stackoverflow上看到了几个线程(like this one),人们都这么说。在我看来,PPM只不过是刚刚进入perl安装的模块的预编译版本。假设它们对系统DLL没有外部依赖性,那么风险是什么?

据我所知,PPM在安装特定模块时会进行依赖性检查,并会安装其所需的任何其他模块。看起来就像在Linux发行版上使用.deb或.rpm文件一样。

编辑#1:

我找到了关于模块Wx的this page,他们展示了如何使用PPM为Strawberry Perl安装Wx。我尝试了它们,它们似乎工作得很好。我还使用PPM和cpanminus混合了CPAN模块,一切看起来都很好。模块如:

  • 蜡质
  • 日期时间
  • DBI
  • 数据::自卸车
  • DBD :: ANYDATA

我的结论是关于将PPM与草莓Perl混合的风险的评论应该与一些盐一起服用,因为可能会导致你在这里或那里出现问题,但总的来说,使用带有Strawberry Perl的PPM模块非常好。

2 个答案:

答案 0 :(得分:6)

我创建了PPM(由ActiveState创建),以便用户可以安装具有XS扩展或使用外部库的模块,而无需使用C编译器或make,或者cpan期望存在的任何unixy内容。他们的一个问题是ActiveState(或某人)必须为您想要的模块以及它从CPAN使用的所有模块制作PPM。有时这意味着使用旧版本,直到它们赶上,有时它意味着模块不可用。

草莓的天才之处在于它提供了一个隐藏的unixy环境,cpan可以用它为你构建模块,因此不需要打包二进制文件。

这意味着你可以通过cpan完成依赖性检查,并且更容易(对于某些容易的值)安装较新版本的模块,或链接到奇数位置的库,以及更多CPAN模块没有任何人的努力可以使用。

关于使用linux-distro打包系统,可以提出相同的论点。如果您需要一个与发行版不同步的模块版本,那么您就会被卡住。如果你想使用更新的Perl,你就会陷入困境。 Perl在CPAN生态系统中有自己非常好的包装系统,所以如果可以的话,使用它真的很有意义。

同时,有时使用一组提供的二进制包更为明智,特别是如果你需要推出大量系统,而你的Perl安装只是你需要保留的软件包集合的一小部分跟踪。

答案 1 :(得分:4)

PPD实际上可以包含外部库(例如XML :: LibXML的包包含libxml2),因此它们可以更容易安装。

PPD已经编译好,因此安装速度更快。

由于PPD会由其他人准备,因此您可以减少控制。您只能使用可用的模块(值得庆幸的是,这些模块可用)以及可用的版本。

我通常会犹豫是否混合使用两个系统,但我在同一版本中同时使用ppmcpan时遇到过一个问题。

只需使用方便你的那个。