代码之家  ›  专栏  ›  技术社区  ›  Adam Bellaire

安装PerlWeb应用程序的最佳系统是什么?

  •  11
  • Adam Bellaire  · 技术社区  · 17 年前

    理想情况下,在从存储库中签出源代码后,最好能够执行以下操作:

    • 是否检测到缺少的依赖项
    • 从CPAN下载并安装依赖项
    • 运行命令将生成的文件安装到适当的位置。不仅是perl模块,还有模板(.tt)文件、CGI脚本、JS和图像文件等应该可以通过web访问的内容。
    • 确保在已安装的文件上设置了正确的权限(必要时,还设置了SELinux上下文)。

    模块::构建 这就是其中的大部分。这项工作是由我正在学习使用的同事完成的 模块::构建 当时,我们希望得到一些关于推广我们的解决方案的建议,因为它现在相当特定于应用程序。特别是,我们的系统要求我们手动安装依赖项(尽管它确实检测到依赖项)。

    你有没有使用过特别成功的系统?您是否必须基于编写安装程序 模块::构建 这是您的应用程序特有的,还是更通用的?

    编辑:

    • 我们可以登录机器
    • 我们没有机器的root访问权限
    • 目前,安装机器的人只是我们组的程序员,我们的源代码不向公众开放。然而,可以想象,我们的源代码最终可以安装在我们组织中其他人的机器上,由他们的程序员或系统人员安装。
    • 我们通过从存储库签出来安装,不过我们希望可以选择使用分布式归档(见上文)。
    4 回复  |  直到 17 年前
        1
  •  7
  •   Dave Rolsky    17 年前

    建议RPM的答案肯定是好的。使用系统的软件包管理器绝对可以让您的生活更轻松。然而,这可能意味着您还需要打包一些其他Perl模块。

    你也可以看看 Shipwright

    至于安装依赖项,简单地打包一堆tarball,然后让基于Module::Build的解决方案安装它们并不困难。你应该看看 pip ,这使得从tarball安装模块变得非常简单。您可以将其与代码库打包,然后从自己的安装程序中调用它来处理DEP。

        2
  •  6
  •   HoldOffHunger Lux    6 年前

    对于我的大部分内容,包括熟悉Perl在控制环境中安装的系统管理员,我只使用 MakeMaker . 如果你知道一点,很容易让它完成你列出的所有事情 MakeMaker Module::Build 不过,如果你还不喜欢使用它,它同样简单,而且是一种方法 制造者

    Module::Build 如果人们对命令行和安装软件有一定的了解,这将是处理许多不同情况的好方法。你会有很大的灵活性 模块::构建 ,但也需要做更多的工作。以及 cpan 该工具(Perl附带)可以从当前目录安装并为您处理依赖关系。只需告诉它安装当前目录:

     $ cpan .
    

    模块::构建 为您制作该软件包,使开发人员具有 模块::构建 这也意味着您可以从一个构建工具为不同的平台创建不同的包。

    正如Dave指出的那样,使用真正的CPAN镜像总是可以获得模块的最新版本,但您也可以使用您想要的发行版制作自己的“假”CPAN镜像,并从中安装正常的CPAN工具。对于我们的客户,我们制作“CD上的CPAN”(尽管现在拇指驱动器也很好)。通过一个简单的“run me”脚本,所有内容都可以安装在他们需要的版本中。比如说,如果你感兴趣的话,我可以自己做一个CPAN对话。再次,考虑观众当你想到这一点。你不会把它交给公众的。

    祝你好运,:)

        3
  •  3
  •   bmdhacks    17 年前

    我建议认真考虑像RPM这样的软件包系统来实现这一点。即使你在Windows上运行,我也会考虑RPM和CygWin来进行安装。您甚至可以设置一个yum或apt存储库来将包交付到远程系统。

        4
  •  2
  •   AndyG    9 年前

    看看 PAR .