我正在使用托管的Linux机器,所以我没有权限写入/usr/lib目录.
当我尝试通过以下方式安装CPAN模块时:
perl Makefile.PL
make test
make install
Run Code Online (Sandbox Code Playgroud)
该模块被解压缩到一个blib/lib/文件夹.我保留了use
blib/lib/ModuleName但是编译器仍然无法找到模块.我已经尝试将.pm文件复制到本地目录并保留
require ModuleName但仍然给我一些错误.
如何将模块安装到其他目录并使用它?
这是我的情况:我对Perl几乎一无所知,但它是移植机器上唯一可用的语言.我只有权在我的本地工作区写入,而不是Perl安装位置.我需要使用CPAN 的Parallel :: ForkManager Perl模块
如何在不进行集中安装的情况下使用此Parallel :: ForkManager?是否有我可以设置的环境变量,因此它位于?
谢谢
JD
有没有人建议找到可能在定制开发项目中出现的所有CPAN依赖关系的好方法.往往是这样的情况,您的本地开发环境很少与您的实时开发环境匹配,并且当您构建越来越多的项目时,您倾向于构建已安装模块的本地库.这些导致您不一定注意到您的最新项目对非核心模块有要求.由于通常需要将整个项目打包以部署到另一个组(在我们的案例中是我们的运营团队),因此了解应该包含哪些模块非常重要.
有没有人对这个问题有任何见解.
谢谢
彼得
不适用于其他模块,但举一个例子.我使用CPAN设置安装了Text :: CSV_XS:
'makepl_arg' => q[PREFIX=~/lib],
Run Code Online (Sandbox Code Playgroud)
当我尝试运行test.pl脚本时:
$ perl test.pl
#!/usr/bin/perl
use lib "/homes/foobar/lib/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi";
use Text::CSV_XS;
print "test";
Run Code Online (Sandbox Code Playgroud)
我明白了
Can't load '/homes/foobar/lib/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Text/CSV_XS/CSV_XS.so' for module Text::CSV_XS: /homes/foobar/lib/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Text/CSV_XS/CSV_XS.so: cannot open shared object file: No such file or directory at /www/common/perl/lib/5.8.2/i686-linux/DynaLoader.pm line 229. at test.pl line 6 Compilation failed in require at test.pl line 6. BEGIN failed--compilation aborted at test.pl line 6.
我将错误追溯到DynaLoader.pm它发生在这一行:
# Many dynamic extension loading problems will appear to come from
# this section of code: XYZ failed at line …Run Code Online (Sandbox Code Playgroud) 我找到了一个我想改变的模块.
我的问题有一些这样的功能:
我应该如何处于这种情况?
cpan ×5
perl ×5
module ×3
install ×2
dependencies ×1
deployment ×1
installation ×1
permissions ×1