use*_*481 11 deployment perl cpan
我开发并维护了一个包含50多个脚本的生物信息学应用程序套件,其部署过程非常混乱:
这显然是几代开发人员有机增长的混乱.理想情况下,我想从内部库和各种相关脚本组创建cpan-installable发行版,并使用模块依赖项让cpan为我安装它们.
但我不知道这样做的最好的办法是,B/C我仍然需要分发Perl本身,就不得不写某种非命令行界面CPAN的,控制第三方CPAN的确切版本模块,默认指向我的"DarkPan",我将存储模块,如何推送更新等.
我不认为我可以使用PerlApp或Par,因为afaik用于捆绑单个脚本,而不是整个套件.
任何建议高度赞赏.
除了提到的 3 个平台(更多,如果算上 Linux 变体的话),您确实遇到了几个不同的问题:
曾几何时,我支持大型 Solaris Perl 安装。我尝试了一段时间“并排”安装 Linux Perl,重新使用相同的 CPAN 模块。没用。对我来说最大的问题是相当多的 Perl 模块需要编译,这意味着它们针对特定的平台。我最终只安装了 2 次,并且始终记得在这两个区域安装新的 CPAN 模块。
我们现在 100% Windows,所以我没有遇到同样的问题。然而,我们确实在共享网络驱动器上运行 Perl。所有用户都映射此驱动器,并运行将 .PL 文件与 Perl 网络安装相关联的注册表脚本。(请参阅我对另一个 Perl 问题的回答。)
因此,除了映射驱动器和注册表脚本之外,用户不需要安装任何东西。甚至 CPAN 模块也是从网络中获取的。这解决了第 1 个问题(仅适用于 Windows 用户)。
同样的情况也适用于第 2 项:脚本存储在网络驱动器(同一驱动器)上,并且用户运行另一个注册表脚本以将脚本文件夹包含在其搜索路径中。我们在一个区域编辑脚本,并有一个“签入和发布”(“CINR”),我们用它来签入和发布脚本到用户指向的区域。用户可以在资源管理器中双击脚本,在 DOS 中运行它们,甚至更好地将它们包含在资源管理器的上下文菜单中等。(实际上,我们使用 .NET 应用程序来映射驱动器并使所有这些用户的设置,但可以更简单地完成。)
那么,这对其他平台(Linux 和 Mac)有何帮助?正如我在 Solaris/Linux 实验中遇到的那样,我认为您在所有 3 个平台上都采用了不同的 Perl 安装,尽管您应该能够为 Perl 脚本和模块访问相同的网络驱动器。
对于 Linux 用户来说,Perl 安装甚至可以在网络驱动器上进行。对于他们来说这可能比 Windows 用户更容易。Mac 用户很难。我管理一个家庭 Mac 网络,我认为与其他操作系统相比,在 Mac OS X 中进行网络驱动非常困难。它应该像在 Linux 中一样简单,因为很多都是相同的,但是(对我来说)映射 NFS 和 SMB 驱动器存在非常奇怪的问题。AFP 驱动器对于用户来说手动映射要容易一些,但以编程方式映射就不那么容易了。
我的 Mac 建议是尝试使用Platypus。尽管您的界面选项仅限于输出(据我所知,在执行期间不允许用户输入),但它确实非常适合将脚本捆绑到可双击的应用程序中。不确定您是否可以将整个 Perl 安装放入 Platypus 应用程序中,但如果您能找出路径,您也许可以。
祝你好运!
| 归档时间: |
|
| 查看次数: |
849 次 |
| 最近记录: |