如何分发本机(非“已编译/perl2exe/...”)Perl脚本,而不强制用户知道脚本运行所需的自定义(非CPAN)模块?
问题是,用户将不可避免地将脚本复制到系统上的其他地方,并将脚本从其本机环境中取出,然后它将无法再找到它需要运行的模块。
我有时只是将模块复制到实际的脚本中,但我更喜欢更干净的解决方案。
更新:我最好澄清一下。我分发了一堆脚本,这些脚本恰好在后端使用了类似的模块。用户知道如何运行Perl脚本,而不是依赖于告诉他们“不,不要移动脚本”,我更喜欢简单地允许他们移动文件。阻力最小的路径。
发布于 2009-11-11 03:08:22
正确的方法是告诉他们“不要那样做!”我希望他们不会期望移动一个exe文件并让程序继续工作。这也没什么不同。
这就是说,有几种选择。一种是用包装器(例如pl2bat)替换脚本,它知道实际脚本的完整路径。另一种方法是使用PAR,但这需要安装PAR和/或parl (来自PAR::Packer)。
发布于 2009-11-11 03:05:09
如果您为客户端准备的脚本需要“自定义”模块,则只需将您的模块打包,就像您试图将它们上传到cpan一样。然后将包提供给客户端,客户端可以使用cpan实用程序安装脚本和模块。
发布于 2009-11-11 03:10:33
随脚本一起分发安装程序。安装程序需要以root权限运行,它会将定制模块放入标准系统位置(/usr/local/lib/perl5/site_perl或其他位置)。
我还没有尝试过,但是Module::Install在这方面看起来很有帮助。它被描述为:
独立、可扩展的Perl模块安装程序
https://stackoverflow.com/questions/1710353
复制相似问题