【问题标题】:How to manually install XS modules?如何手动安装 XS 模块?
【发布时间】:2012-07-08 16:50:11
【问题描述】:

如果我错了,请纠正我,但基于 XS 和 Dynaloader 的模块是那些使用 C/C++ 共享对象 (.so) 而不是 PP (Pure Perl) 的模块?

现在假设我有一台机器,它没有任何网络连接(Solaris 10),我想安装 Crypt::OpenSSL::AES(基于 XS 的模块),将 AES.pm 文件复制到相关路径在@INC 中不会有任何好处,因为我的系统没有安装libssl

我的第二个也是最重要的问题是,当我没有 CPAN 时如何安装这些模块? 我的做法是:

  1. 首先为我的平台获取libssl,编译它,但是我应该把那个分片对象文件放在哪里以便 perl 可以找到它?
  2. 当我安装并编译了 libssl 并定位到它应该在的位置后,现在只需将 AES.pm 复制到 @INC 中的相关路径就足够了,还是我需要配置/制作它?

【问题讨论】:

  • Crypt::OpenSSL::AES 需要编译并链接到 libssl 才能正常工作。 1.下载编译安装libssl 2.下载编译安装Crypt::OpenSSL::AES
  • Solaris 的 IIRC 标准安装不提供 cc 或 gcc 或任何其他 c 编译器

标签: perl module perl-module xs


【解决方案1】:

CPAN 本身是基本 perl 安装的一部分。它将始终可用。

如果您不能使用cpan shell 与 Internet 通信并获取模块,您至少可以从 CPAN 网站获取 tarball,将其放在目标机器上,解压缩,然后运行

$ cpan .

从解压后的目录中。这将为该发行版运行 CPAN 安装程序。当然,如果它发现缺少的依赖项,您将不得不使用相同的技术递归地自己获取这些依赖项。

【讨论】:

    【解决方案2】:
    1. 如果您没有 root 访问权限,我将安装在 ${HOME}/lib。只要确保链接器可以找到它,目录应该在您的LD_LIBRARY_PATH 环境变量中,或者更好的是point EU::MM to the library and include files

    2. 不,该模块还有一部分需要编译的 C 语言。

    安装

    下载分发包:http://search.cpan.org/CPAN/authors/id/T/TT/TTAR/Crypt-OpenSSL-AES-0.02.tar.gz

    然后按照 INSTALLATION 下的 README 文件中的步骤进行操作

    perl Makefile.PL INC="-I $HOME/include" LIBS="-L $HOME/lib"
    make
    make test
    make install
    

    这将确保模块正确构建、测试和安装。

    【讨论】:

      猜你喜欢
      • 2011-08-12
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 2020-06-08
      相关资源
      最近更新 更多