如何手动安装XS模块?

时间:2012-07-08 16:50:12

标签: perl module perl-module xs

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

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

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

  1. 首先获取libssl我的平台,编译它,但是我应该在哪里放置该分片对象文件以便perl可以找到它?
  2. 当我安装和编译libssl并找到它应该的位置时,现在只需将AES.pm复制到@INC中的相关路径,或者我是否需要配置/制作它?

2 个答案:

答案 0 :(得分:7)

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

如果您无法使用cpan shell与互联网交谈并获取模块,您至少可以从CPAN网站抓取tarball,将其放在目标计算机上,解压缩,然后运行< / p>

$ cpan .

来自解压缩目录。这将运行该分发的CPAN安装程序。当然,如果它找到缺少的依赖项,你将不得不使用相同的技术递归地获取它们。

答案 1 :(得分:6)

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

  2. 不,该模块还有C部分,必须编译。

  3. 安装

    下载分发tarball: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
    

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