如果我错了,请纠正我,但基于XS和Dynaloader的模块是那些使用C / C ++共享对象(.so)而不是PP(Pure Perl)的模块?
现在假设我有一台机器,它没有任何网络连接(Solaris 10),我想要安装Crypt::OpenSSL::AES
(基于XS的模块),复制AES.pm
文件因为我的系统没有安装libssl
,所以@INC中的相关路径不会有任何好处。
我的第二个也是最重要的问题是,如果没有CPAN,我该如何安装这些模块? 我的方法是:
libssl
我的平台,编译它,但是我应该在哪里放置该分片对象文件以便perl可以找到它?AES.pm
复制到@INC中的相关路径,或者我是否需要配置/制作它?答案 0 :(得分:7)
CPAN本身是基本perl安装的一部分。它将始终可用。
如果您无法使用cpan
shell与互联网交谈并获取模块,您至少可以从CPAN网站抓取tarball,将其放在目标计算机上,解压缩,然后运行< / p>
$ cpan .
来自解压缩目录。这将运行该分发的CPAN安装程序。当然,如果它找到缺少的依赖项,你将不得不使用相同的技术递归地获取它们。
答案 1 :(得分:6)
如果您没有root访问权限,我会安装在${HOME}/lib
中。只需确保链接器可以找到它,该目录应该在LD_LIBRARY_PATH
环境变量中,或者更好point EU::MM to the library and include files。
不,该模块还有C部分,必须编译。
安装
下载分发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
这将确保模块正确构建,测试和安装。