gpt4 book ai didi

perl - 当我无法在目标主机上安装模块时,如何创建可移植的 perl?

转载 作者:行者123 更新时间:2023-12-04 00:20:39 24 4
gpt4 key购买 nike

我需要在 HP unix/Solaris 主机上运行我在 cygwin Windows 上开发的 Perl 应用程序。我不是 unix 机器上的 super 用户,我无法触及默认的 Perl 模块位置,也无法将模块安装到默认的 Perl 模块位置。此外,unix 安装缺少最基本的模块,我无法更改。

例如,我有一个需要 Expect 的 Perl 应用程序。它具有 native C 编译部分。我如何将这个应用程序推出到 unix 及其所需的依赖项,而不必在那个盒子上安装任何其他东西?

有没有办法在 Cygwin Windows 下构建整个 Perl 应用程序,然后将一个可执行文件推出到 unix 并从我的主目录运行它?

根据迄今为止的答案编辑添加:

Thanks in particular to brian ,本地 LIB 目录解决方案似乎在本地 Perl 的情况下工作,但在 Perl 模块需要 C 组件的情况下,跨平台编译,即在 cygwin 上编译以在 Solaris 上运行,是不可能的,因为我担心。

但是,是否有其他 linux 安装帮助,即这是否可能在不同风格的 Unix 之间更容易,比如 Linux 上的 Perl 包,然后部署到 Solaris/HP?像 lcc 这样的东西呢? ?

此外,如果有人在 Windows 上推出了 native Perl 包,其中包含复杂 Perl 应用程序的所有依赖项,然后可以将其作为一个文件移动到 unix,我仍然希望听到更多信息? (我现在明白,如果像 Expect.pm 中那样包含原生 C 代码,它将无法工作,但是如果应用程序仅使用纯 perl 模块呢?)

基本上出于多种原因,我试图尽量减少登录这些“生产”unix 主机所需的时间,并尽可能多地事先在本地进行操作。

添加了新的交叉编译 question ,因为我觉得我可能离最初的 perl 问题太远了。

编辑——Par对于纯 Perl 来说看起来很有希望,虽然同样的交易,但它并不能解决原生扩展的跨平台编译问题

最佳答案

在这种情况下,我会考虑提供一个完整的应用程序,其中包含它自己的 Perl。你可以选择你喜欢的任何版本和你喜欢的任何模块。编译所有内容,将所有内容组织到一个目录中,然后对结果进行 tar。要部署,请复制文件并解压缩。使用其他人已经注意到的关于库搜索路径等的建议。本质上,您的应用程序有自己的堆栈。

现在,诀窍是交叉编译。为什么要在 Cygwin 上开发?这也是目标吗?您没有 HP/UX 或 Solaris 开发机器是有原因的吗?您的目标是什么架构(RISC、SPARC、英特尔等)。如果您无法获得运行这些硬件的硬件,请为您的目标获取一些虚拟机并在那里进行开发。

除此之外,您可以在任何有权限的地方安装模块。见 perlfaq8 :

  • How do I keep my own module/library directory?
  • How do I add the directory my program lives in to the module/library search path?
  • How do I add a directory to my include path (@INC) at runtime?
  • 关于perl - 当我无法在目标主机上安装模块时,如何创建可移植的 perl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570762/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com