微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

perl – 如何在没有root访问权限的情况下在本地安装CPAN模块(DynaLoader.pm 229行错误)?

不适用于其他模块,但举一个例子.我使用CPAN设置安装了Text :: CSV_XS:
'makepl_arg' => q[PREFIX=~/lib],

当我尝试运行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";

我明白了

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 123 of DynaLoader.pm.
# Often these errors are actually occurring in the initialisation
# C code of the extension XS file. Perl reports the error as being
# in this perl code simply because this was the last perl code
# it executed.

my $libref = dl_load_file($file,$module->dl_load_flags) or
    croak("Can't load '$file' for module $module: ".dl_error());

CSV_XS.so存在于上述目录中

解决方法

我个人建议使用 local::lib.

原文地址:https://www.jb51.cc/Perl/172311.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐