我已下载模块Digest::SHA1并将其解压缩到目录(../Digest-SHA1-2.13/),然后将所有SHA1.*文件复制到(../Digest-SHA1-2.13/Digest)
在perl脚本中,我做了:使用Digest :: SHA1; 像这样启动脚本:
perl -I ../Digest-SHA1-2.13/Digest perlscriptname.pl
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Can't locate loadable object for module Digest::SHA1 in @INC
Run Code Online (Sandbox Code Playgroud)
我假设它与共享库(*.so)有关,我不知道如何从这里继续.
我可以使用CPAN(-MCPAN)模块直接安装它,因为我没有权限在该服务器上执行此操作,并且只能在本地安装(应用程序运行的地方).我的最终目标是使用Algorithm::CouponCode哪个依赖于Digest::SHA1
奇怪的部分是,我已经Digest::SHA1安装(perl -MDigest::SHA1 -e 'print $Digest::SHA1::VERSION'显示版本2.11),仍然Algorithm::CouponCode(安装方式与我做的相同Digest::SHA1)抱怨它可以找到它@INC
谢谢!
Eri*_*ikR 29
使用此配方手动安装perl模块:
tar zxf Digest-SHA1-2.13.tar.gz
cd Digest-SHA1-2.13
perl Makefile.PL
make
make test
make install
Run Code Online (Sandbox Code Playgroud)
请注意,某些发行版将有一个Build.PL文件而不是Makefile.PL.在这种情况下使用此配方:
tar zxf ...
cd ...
perl Build.PL
./Build
./Build test
./Build install
Run Code Online (Sandbox Code Playgroud)
(您可以只运行度日make install和./Build install).
如果需要更改安装目录,请使用:
perl Makefile.PL INSTALL_BASE=...
Run Code Online (Sandbox Code Playgroud)
要么
perl Build.PL --install_base ...
Run Code Online (Sandbox Code Playgroud)
取决于模块的种类.
有关更多信息,请参阅ExtUtils :: MakeMaker :: FAQ和Module :: Build的perldoc
Perl 模块有两种:pure-Perl 和 XS。Pure-Perl 模块完全用 Perl 编写,通常只需将.pm文件复制到适当的目录即可安装。XS 模块是用 Perl 和 C 编写的(XS 被ExtUtils::ParseXS模块处理成 C 代码)并且需要一个 C 编译器来安装它们。
正如 dsolimano 所说,当您没有 root 访问权限时,为系统 Perl 安装 Perl 模块的最简单方法是使用local::lib。(你可以做和local::lib自己一样的事情,但为什么要麻烦呢?)
单独Digest::SHA1运行而不是在您使用时运行的原因Algorithm::CouponCode是系统 Perl 已经Digest::SHA1安装了2.11 版。当您使用-I ../Digest-SHA1-2.13/Digest, 然后use Digest::SHA1从 ../Digest-SHA1-2.13/Digest 中提取 Perl 代码,但是将从 XS 代码构建的共享库不在相应位置。
| 归档时间: |
|
| 查看次数: |
38737 次 |
| 最近记录: |