我该如何处理Activestate将PPM从Perl中删除的问题?

4

我是一名偶尔在Windows和Linux上进行Perl开发的开发者。当Perl是合适的工具时,我每年会写或修改几次Perl脚本。我没有成为真正的Perl专家,但在这个论坛中得到了很大的帮助。

每当我构建或升级机器时,我都会获取最新的Perl版本。2020年,我注意到Activestate强制在下载前登录账户。我这样做了,当时并没有多想。后来我需要添加一些模块,发现PPM已被废弃并删除

这似乎是一个相当重要的问题——就像安装最新的Ubuntu并发现apt-get已被删除一样。我的理解是,Perl用户应该返回Activestate,并让他们构建一个捆绑所需模块的自定义安装程序,然后在每次更改后重新安装Perl。这似乎是倒退了一步。这是朝着控制用户基础的方向迈出的一步,最终将自由Perl变成“高价Perl”吗?

Perl社区对此有何看法?你有什么建议?我是否误解了State Tool以及它的工作原理?你会继续使用ActiveState,转向Strawberry Perl还是其他什么?


2
安装 Perl 模块的标准方式一直是使用 cpan,这个方法仍然有效。AS 的 ppm 仓库一直是由 AS 提供的增值服务,他们在限定的免费期后会收费。 - ikegami
它仍然与CPAN捆绑在一起。 - tobyink
2
你可以考虑使用草莓 Perl。我从 ActivePerl 转过来了,从此不再回首。 - TLP
ActiveState为Perl和许多其他事物提供企业支持。如果您只是一个普通用户,那么他们的设置并不适合您的工作流程。 - brian d foy
2个回答

7

@lordadmira的建议很明智,但我也建议尝试从ActiveState平台使用Perl 5.32(完全透明 - 我在ActiveState工作)。

您不需要帐户,一切都是开源的。

在Linux终端或Windows命令提示符中,您可以使用一行命令设置命令行界面并一次性安装Perl 5.32。

在Linux上,在终端中运行:

sh <(curl -q https://platform.activestate.com/dl/cli/install.sh) --activate-default ActiveState/Perl-5.32

在Windows系统中,从命令提示符(Cmd)中运行:

powershell -Command “& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString(’https://platform.activestate.com/dl/cli/install.ps1'))) -activate-default ActiveState/Perl-5.32”

您可以从命令行使用 state install DateTime 添加任何您喜欢的包(或者使用 state import cpanfile 从 cpanfile 中安装一堆包)。 (注意:从 Perl 5.32 开始,state 不会重新建立您的整个环境,而是安装单个软件包)。

默认情况下,它设置在虚拟环境中,并且不会影响您系统安装的 Perl 或其依赖项。

...如果您不喜欢它,只需运行:

state clean uninstall

......一切都可以不留痕迹地清除。

如果您想了解更多细节,请访问https://www.activestate.com/perl-532/概述页面。

如果您有评论或问题,可以在https://community.activestate.com上分享。

如果您尝试了,请告诉我您的想法!


3

我理解你的困扰。我的解决方案是使用旧版本,该版本仍然具有PPM和MinGW编译器,可以让“正常工作”。

我最近听到ActiveState正在以新形式重新引入PPM。我们拭目以待。

以下是按我喜好顺序列出的选项。我已经做了将近20年这个行业。

Windows:

  1. 使用Cygwin。它是适用于Windows的POSIX环境,并带有Perl和所有编译器。有许多预编译的供应商软件包。cygwin.com
  2. 安装ActiveState使用的MinGW编译器,以便可以使用编译您自己的模块。
  3. 使用Strawberry Perl。
  4. 使用具有PPM和编译器的较旧版本的ActivePerl。然后使用正常构建。我认为这是5.26版。
  5. 与ActiveState联系,使生成系统和State Tool正常工作。
  6. 向ActiveState购买支持合同,支付费用来使其正常工作。

Linux:

  1. 使用操作系统提供的Perl分发。
  2. 如果操作系统提供的Perl分发不符合您的需求,请安装所有编译器并从头开始编译Perl。
  3. 向ActiveState购买支持合同,支付费用来使其正常工作。

安装ActiveState使用的MinGW编译器,以便您可以使用cpan编译自己的模块。AP在需要时会自动执行此操作吗?还是他们停止了? - ikegami
据我所知,它已经被PPM移除了。他们希望你使用状态工具在他们的服务器上进行编译。我实际上放弃了这条路线,并回到了5.26版本进行项目开发。 - lordadmira
ActivePerl 5.26 的链接:https://platform.activestate.com/ActiveState/ActivePerl-5.26/distributions。 - Matthew Lock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接