【问题标题】:Using ActivePerl and Strawberry simultanously同时使用 ActivePerl 和草莓
【发布时间】:2017-03-20 21:38:13
【问题描述】:

我最近将客户端 64 位 ActivePerl 的版本从 5.10.1.1007 升级到 5.22.2.2203,但我遇到了很多问题。

我真的更愿意跳到 Strawberry,但我必须先在我每天运行的每个关键 Perl 应用程序上对其进行测试。

我能否在继续使用 ActivePerl 版本进行生产工作的同时安装 Strawberry 的便携版本并对其进行测试?

(与我类似的其他 stackoverflow 问题仅收到有关服务器端 Perl 的答案。)

【问题讨论】:

  • 您确定草莓会解决您的问题吗? ActiveState 版本是优质版本。如果您的问题是 Perl 5.22 固有的(例如,您需要的某些模块与 5.22 不兼容),Strawberry Perl 不会解决这个问题。我写这篇文章是因为有些人认为,作为开源的草莓就像魔法一样,可以解决世界上所有的问题,但事实并非如此。所以在你切换之前,确保它是值得的!
  • 我对可移植版本一无所知,但我安装了多个 ActivePerl 和 StrawberryPerl 版本而没有问题。只需确保执行“正确”的 perl、cpan、cpanm、ppm 等。

标签: perl strawberry-perl activeperl


【解决方案1】:

你可以,你只需要注意你使用的是哪个 perl。在您的 PATH 中,只有一个可以是“第一”。为此,我建议将旧的 perl 作为默认的、主要的。这对现有(生产)代码的影响最小。

但是,您可以在 PATH 中使用不同名称的辅助 perl。例如,perl5.22.2.exe 可能在您的 PATH 中,您可以在运行测试时使用它。

如果您有一个批处理文件或类似的 perl 脚本包装器,您可以让每个应用程序的批处理文件为该应用程序运行正确的 perl,并且您只需要 a) 一种覆盖它使用的 perl 的方法, b) 让它默认为您希望它使用的 perl 的测试级别。这样你可以用 5.22.2 测试一段时间,但默认仍然是 5.10.1。然后,当您准备好切换该应用程序时,您可以将默认设置切换到 5.22.2。

无论是客户端还是服务器端都没有真正的区别。

(而且平台也没有太大区别 - 虽然在 unix/linux 系统上的实际实现可能有点不同,但总体思路不必如此。您可以同时安装两者, 并根据需要逐个应用程序管理要使用的 perl。)

【讨论】:

  • 明显的问题是pl2bat创建的批处理文件依赖%PATH%上的perl
【解决方案2】:

berrybrew 的一个好处是它允许您以托管方式安装和使用任何草莓便携式版本,并且能够非常轻松地切换回您的系统 perl(在您的情况下为 ActiveState)随时。

您可以从 Github(上面的链接)安装,也可以按照安装说明通过 zip 文件进行安装。

然后:

cd berrybrew
bin\berrybrew.exe config

关闭cmd窗口,打开一个新窗口。

berrybrew install 5.24.1_64
berrybrew switch 5.24.1_64

打开新的cmd窗口

此时您使用的是 Strawberry Portable 5.24.1 版。切换回 ActiveState:

berrybrew off

要返回到 berrybrew 托管的草莓实例,只需使用上面的 switch 命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2012-05-27
    • 2021-09-23
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多