如何在不访问CPAN的情况下使用CPAN模块?

时间:2013-04-04 19:33:54

标签: perl perl-module cpan

每次我被迫从CPAN检索模块时,我都非常失望。在我工作的大多数环境中,互联网访问受到严格限制或完全被拒绝。在操作系统强化过程中​​已删除所有编译器。在进入或退出网站之前,安全团队会扫描所有数字存储媒体。请注意,我理解安全性,所有这些对我来说都没问题,但是......

仅访问CPAN模块提供的代码的建议或最佳做法是什么。

如果我只需要一个模块给我的片段,功能或单一功能串,如何在不安装整个模块的情况下提取“我需要/想要的东西”?请记住,我可能会打印出来,写下来并输入内容,以便从具有互联网访问权限的非现场位置传输数据。

1 个答案:

答案 0 :(得分:6)

当您无法访问CPAN时 - 您希望如何使用它?所以,您可以:

  • 何时可以访问互联网 - 您可以安装模块
  • 如果没有,你可以在USB记忆棒或soo上带minicpan
  • 如果由于安全政策而无法做到这一点,则只能使用例如您手机在CPAN上显示来源并手动重新键入所需的部分
  • 如果两者都不可能 - 您可以在家中打印T恤上的源代码并在工作中重新输入:)
  • 或者,只需要自己编程 - 通过在家学习
  • 或者,找到更好的工作:)

编辑:更严肃的方法

首先,有一家公司使用perl进行开发,但不允许使用CPAN,这很奇怪。当然,据我所知,直接访问大量未经扫描的sw对许多公司来说是不可接受的,但在这种情况下,这里应该存在一些“公司政策” - 如何允许访问。

以下是几个问题:

  • 硬化仅在技术层面(防火墙等) - 所以你可以带来例如内置USB记忆棒,CD或任何其他介质,或
  • 策略级别 - 策略不允许使用任何外部源

如果它处于政策层面 - 恕我直言,你运气不好。简单地说,如果不允许使用任何外部源 - 您只能使用“打印和重新输入”方法。

以下是一些可能性:

在公司范围内建立本地CPAN存储库

使用“受信任”模块创建本地CPAN(minicpan)服务器。此存储库也可以作为本地开发模块的存储库。在这种情况下,必须存在一些“审计权限”(策略和程序)如何将模块放入本地仓库。恕我直言,这可能是最有用的方式 - 当公司定期使用perl时。

当然,将系统范围(默认的perl模块)与CPAN模块混合不是最好的主意。因此可以设置:

local :: lib或build-prefix

local::lib - 使用PERL5LIB创建并使用本地lib / for perl模块。谷歌的perl "local::lib"或类似的东西。另请阅读其他一些SQ问题:

使用local :: lib是很好的解决方案,因为它不会破坏系统范围的perl模块。当然,再次 - 您将需要一些“审核过程”如何在中获取模块

perlbrew

如果系统尚未安装perl,则使用您自己构建的perl - perlbrew - 是更通用的解决方案。您不需要root访问权来构建自己的perl。当然,这里仍然存在一些问题(除了审计之外),例如“缺少编译器问题”。

虚拟机

您可以尝试使用完全CPAN访问设置虚拟机进行开发(或隔离的物理机),并在此处进行开发。完成开发后,您可以将所有必需模块的工作转发到“审核过程”。

其他

如果只需要从CPAN模块中提取功能或模块,请在外部机器上进行。提取函数或某个部分不是技术问题(当你知道perl时)它更像是一个许可证问题 - 使用你工作中的一部分模块 - 你需要引用作者。

为此您需要获取所有需要的功能 - 可以找到有趣的discussion。谷歌的“perl函数依赖”或类似的东西,或:

也许,你会发现this discussion也很有趣......