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

Dan*_*ton 3 perl cpan perl-module

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

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

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

jm6*_*666 6

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

  • 什么时候上网 - 你可以安装模块
  • 如果没有,你可以带一个minicpanUSB棒或洙
  • 如果由于安全策略而无法实现,您只能使用手机在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 - perlbrew - 如果系统尚未安装perl,则是更通用的解决方案.您不需要root访问权来构建自己的perl.当然,这里仍然存在一些问题(除了审计之外),例如"缺少编译器问题".

虚拟机

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

其他

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

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

也许,你会发现这个讨论也很有趣......

  • 在这种环境中,他们可能不会允许他下载或者在安全设施内部安装未经扫描和未评估的软件. (3认同)