【问题标题】:Compiling a portable Perl and including a CPAN module编译可移植 Perl 并包含 CPAN 模块
【发布时间】:2010-11-05 02:41:08
【问题描述】:

我正在尝试编译一个包含 CPAN 模块的可移植版本的 perl,特别是 YAML 模块。我打算将这个可移植版本复制到我在许多 Redhat Linux 机器上的主目录中,将它添加到我的 $PATH 并使用这个版本而不是默认的 perl 版本来运行一些测试。

我已经设法编译了一个可移植版本的 perl 并让它在不同的机器上运行。但是,当我编译并安装 YAML 模块时,它可以在本地工作,但是当我将其复制到其他机器时会失败。

这是我在本地为 YAML 模块编译的步骤

perl Makefile.pl
make test
make install

它在本地安装 YAML 模块,当我在脚本中使用 YAML 模块时也可以在本地工作。

这是我将 perl 复制到另一台机器并尝试使用 YAML 模块时的错误...

Can't locate loadable object for module YAML::XS::LibYAML in @INC

即使 lib/site_perl/5.10.1/x86_64-linux/YAML/LibYAML.pm 存在于我的本地副本中。

我正在尝试做的事情可能吗?
如果是这样,我哪里出错了?

【问题讨论】:

  • 错误信息不是在抱怨 YAML::LibYAML,而是在抱怨 YAML::XS::LibYAML。
  • 不是关于 YAML::XS::LibYAML,而是它的 C 部分 - LibYAML.so(或类似的东西)。
  • 我确定 YAML-LibYAML 模块包含 YAML::XS。我认为尽管 Alexandr 是对的,但不知何故,模块的 C 部分一旦编译就不可移植。

标签: perl compilation perl-module portable-executable


【解决方案1】:

您可能应该探索PAR,您可以使用它创建模块依赖项的存档并将其与您的应用程序一起发布。

【讨论】:

  • 我认为 PAR 将帮助我实现我所追求的目标,谢谢。但是,我仍然不明白为什么我之前的方法失败了。
  • Jira,我终于开始探索 PAR,这确实是我所需要的。效果很好,再次感谢。
猜你喜欢
  • 2020-02-12
  • 2016-07-11
  • 1970-01-01
  • 2018-06-24
  • 2013-11-09
  • 2013-06-30
  • 1970-01-01
  • 2014-04-27
  • 1970-01-01
相关资源
最近更新 更多