【问题标题】:Deploying C-dependent Perl libraries部署依赖于 C 的 Perl 库
【发布时间】:2012-04-17 16:55:03
【问题描述】:

我有一个部署在 Linux (Red Hat) 和 Unix (Solaris) 上的应用程序。我的应用程序使用内置 Perl 自行安装,然后创建自己的本地 Perl(新用户)。

我想知道部署Curses::UI 的最佳方式是什么?目前我通过将其他模块复制到本地 perl lib 文件夹来安装其他模块,但这些是不依赖于 C 库(.so 共享对象、XS 等)的纯 Perl 模块。

我还需要为每个平台预先编译libncurses 吗?

注意:计算机没有网络连接,因此我无法使用 CPAN 模块。

【问题讨论】:

标签: perl ncurses curses


【解决方案1】:

您应该使用 CPAN 客户端(CPAN.pm、CPANPLUS)从 CPAN 部署 Curses::UI 等模块。通常你需要开发库来编译 XS 模块。对于 Curses::UI,Ubuntu 软件包称为 libncurses-dev。其他 Linux 发行版可能具有相同或相似名称的 ncurses 开发包。

你说你有一个本地 Perl 库。拥有本地库的一个非常好的方法是使用同名模块 - local::lib。它的文档将告诉您如何使用 CPAN 客户端轻松地将模块安装到 local::lib 中。

【讨论】:

  • 那么我可以使用 CPAN::Mini 构建一个仅包含 Curses::UI 及其依赖项的本地存储库吗?
【解决方案2】:

对于需要构建的 CPAN 模块,请尝试查看 carton。它有一个 bundle 命令,可以将所有 cpan 模块捆绑在一起,这样它们就可以在目标机器上安装/构建,而无需涉及任何网络。

至于 libcurses,如果尚未安装,我可能倾向于使用自定义安装程序在目标机器上构建它。除非找到该库,否则将拒绝安装您的软件。不幸的是,除了执行自定义构建脚本之外,我不知道在本地构建依赖 C 库的好方法。

【讨论】:

    猜你喜欢
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    相关资源
    最近更新 更多