归功于 Perl 模块

Giving Credit for Perl Module

我为我的公司写了一个脚本,我正在使用从 CPAN 获得的一些库。我的经理希望我合并并删除额外的库 - 这有点好笑,因为我将它们包含在脚本中才能正常工作。

一些注意事项:

我现在唯一的解决办法就是将 perl 模块的内容直接放入我的 perl 脚本中。但是,我想在应有的地方给予赞扬,也不会因为包含开源代码 w/o 对其作者和组织给予适当的赞誉而惹上麻烦。

因此,我该如何处理?我不想逃避任何事情。老实说,我想以正确的方式去做这件事。

三个模块都说"licensed under the same terms as Perl itself",但我觉得不应该这么简单。

我也想探索任何其他想法!

模块是:

能不能减少不必要的代码(满足你们经理的顾虑)。在文件中保留所需的代码 - 并在其中注明作者的姓名 module/package.

例如:这是从 Joe E Perl 那里得到启发(窃取)的。

使用 PAR Packager 是否适合您?这将生成一个独立的可执行文件。

有趣的问题和观点。我不明白什么是反对使用库或模块,但我会让你的经理思考 ;-)

关于版权,如果你想确定最好咨询律师,但据我了解,你可以结合别人的作品,只要你保留版权声明。合并后的作品 may not be covered by copyleft,因此您可以将其用于商业用途(即,在不公开来源的情况下分发它)。但是请咨询律师。

但是,既然你说你想探索其他想法,App::Staticperl 可能是一个解决方案?我没有这方面的经验,但我尝试了一个简单的例子并得到了一个工作的可执行文件。

App::Staticperl 从带有嵌入式 CPAN 模块的 Perl 解释器构建一个独立的可执行文件。我遵循的步骤大致是(你需要适应,因为显然我无法用你的脚本进行测试):

  1. App::Staticperl 的最新版本是 1.43:https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/App-Staticperl-1.43.tar.gz
  2. 要么通过 CPAN 安装模块,要么简单地从 tar 中提取 bin/staticperl - 它是一个独立的脚本
  3. 编辑 staticperl 以更改 EMAILCPAN(可选,但您可能想要更改 CPAN 镜像)
  4. ./staticperl install 下载并构建 Perl;它以我的盒子上的一条错误消息结束,但确实产生了一个有效的 Perl
  5. ./staticperl cpan 进入交互式 CPAN 提示; install Text::Tableinstall Term::ANSIColor 以及您需要的任何其他内容
  6. ./staticperl mkapp my_app --boot path/to/your/script -MText::Table -MText::Aligner -MTerm::ANSIColor
  7. 尝试应用程序:./my_app - 它很可能会失败并显示有关缺少模块的错误消息;重复上一步并在 -M flags
  8. 中包含缺失的模块

祝你好运!

如果模块是纯 Perl 模块,您可以简单地将代码(包括那些 package 语句)附加到您的程序中。我还会包括 POD,其中也包括版权声明和作者姓名。那应该满足艺术许可要求(但可能不满足 GNU 许可要求)。

另一种可能性是使用Perlbrew,这将允许您在系统上安装Perl 的用户版本。这样,您可以在不需要管理权限的情况下安装 CPAN 模块,并且您可以告诉其他用户也使用 Perlbrew。

我使用它是因为我可以在不同版本的 Perl 之间安装和切换,这让我可以在不同版本的 Perl 中测试我的 Perl 脚本。我还在我们的服务器上使用了它,我需要更新版本的 Perl 或标准版本中未包含的模块。

您需要在安装 Perlbrew 之前获得您的 IT 批准,但很多时候他们会松一口气,因为他们不再需要为您的使用而维护和安装 CPAN 模块。