当前位置:  开发笔记 > 编程语言 > 正文

当我无法在目标主机上安装模块时,如何创建便携式perl?

如何解决《当我无法在目标主机上安装模块时,如何创建便携式perl?》经验,为你挑选了1个好方法。

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

例如,我有一个需要Expect的Perl应用程序,它具有本机C编译的部分.如何将此应用程序推广到具有所需依赖项的unix,而无需在该框中安装任何其他内容?

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


到目前为止基于答案编辑添加:

特别感谢brian,本地LIB目录解决方案似乎适用于本地Perl,但是在Perl模块需要C组件的情况下,跨平台编译,即在cygwin上编译以在Solaris上运行,实际上是不可能的,因为我担心.

然而,如果有其他Linux安装帮助,即在不同版本的Unix之间可以更容易,比如在Linux上打包Perl然后部署到Solaris/HP?那个像lcc这样的东西呢?

如果有人在Windows上推出了一个包含所有依赖项的复杂Perl应用程序,然后可以将其作为一个文件移动到unix,我还是希望听到更多内容.(我现在明白,如果在Expect.pm中包含原生C代码,它将不起作用,但是如果app只使用纯perl模块呢?)

基本上由于很多原因,我试图最小化时间,我需要花费时间登录这些"生产"unix主机,并尽可能在本地做事.


添加了一个新的交叉编译问题,因为我觉得我可能偏离了最初的perl问题.


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



1> brian d foy..:

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

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

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

如何保留自己的模块/库目录?

如何将程序所在的目录添加到模块/库搜索路径中?

如何在运行时将目录添加到包含路径(@INC)?

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有