每次我被迫从CPAN检索模块时,我都非常失望。在我工作的大多数环境中,互联网访问受到严格限制或完全被拒绝。在操作系统强化过程中已删除所有编译器。在进入或退出网站之前,安全团队会扫描所有数字存储媒体。请注意,我理解安全性,所有这些对我来说都没问题,但是......
仅访问CPAN模块提供的代码的建议或最佳做法是什么。
如果我只需要一个模块给我的片段,功能或单一功能串,如何在不安装整个模块的情况下提取“我需要/想要的东西”?请记住,我可能会打印出来,写下来并输入内容,以便从具有互联网访问权限的非现场位置传输数据。
答案 0 :(得分:6)
当您无法访问CPAN时 - 您希望如何使用它?所以,您可以:
minicpan
编辑:更严肃的方法
首先,有一家公司使用perl进行开发,但不允许使用CPAN,这很奇怪。当然,据我所知,直接访问大量未经扫描的sw对许多公司来说是不可接受的,但在这种情况下,这里应该存在一些“公司政策” - 如何允许访问。
以下是几个问题:
如果它处于政策层面 - 恕我直言,你运气不好。简单地说,如果不允许使用任何外部源 - 您只能使用“打印和重新输入”方法。
以下是一些可能性:
使用“受信任”模块创建本地CPAN(minicpan)服务器。此存储库也可以作为本地开发模块的存储库。在这种情况下,必须存在一些“审计权限”(策略和程序)如何将模块放入本地仓库。恕我直言,这可能是最有用的方式 - 当公司定期使用perl时。
当然,将系统范围(默认的perl模块)与CPAN模块混合不是最好的主意。因此可以设置:
local::lib - 使用PERL5LIB创建并使用本地lib / for perl模块。谷歌的perl "local::lib"
或类似的东西。另请阅读其他一些SQ问题:
使用local :: lib是很好的解决方案,因为它不会破坏系统范围的perl模块。当然,再次 - 您将需要一些“审核过程”如何在中获取模块。
如果系统尚未安装perl,则使用您自己构建的perl - perlbrew - 是更通用的解决方案。您不需要root访问权来构建自己的perl。当然,这里仍然存在一些问题(除了审计之外),例如“缺少编译器问题”。
您可以尝试使用完全CPAN访问设置虚拟机进行开发(或隔离的物理机),并在此处进行开发。完成开发后,您可以将所有必需模块的工作转发到“审核过程”。
如果只需要从CPAN模块中提取功能或模块,请在外部机器上进行。提取函数或某个部分不是技术问题(当你知道perl时)它更像是一个许可证问题 - 使用你工作中的一部分模块 - 你需要引用作者。
为此您需要获取所有需要的功能 - 可以找到有趣的discussion。谷歌的“perl函数依赖”或类似的东西,或:
也许,你会发现this discussion也很有趣......