linux Perl/cpan:无法找到JSON/Parse.pm @INC

xxe27gdn  于 2023-06-21  发布在  Linux
关注(0)|答案(1)|浏览(177)

我在CentOS 7上运行。
我已经通过cpan安装了JSON::Parse,但得到了错误。

Can't locate JSON/Parse.pm in @INC (@INC contains: 
/home/truckassist/modules 
/usr/local/lib64/perl5 
/usr/local/share/perl5 
/usr/lib64/perl5/vendor_perl 
/usr/share/perl5/vendor_perl 
/usr/lib64/perl5 
/usr/share/perl5 .)

当运行cpan JSON::Parse时,我得到以下结果:JSON::Parse is up to date (0.62)
到目前为止,我已经尝试了以下方法...

perl -e "print qq(@INC)"

输出:

/root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi 
/root/perl5/lib/perl5/5.16.3 
/root/perl5/lib/perl5/x86_64-linux-thread-multi 
/root/perl5/lib/perl5 
/usr/local/lib64/perl5 
/usr/local/share/perl5 
/usr/lib64/perl5/vendor_perl 
/usr/share/perl5/vendor_perl 
/usr/lib64/perl5 
/usr/share/perl5

另外:
find /root/perl5 -iname '*json*'
输出:

/root/perl5/bin/cpanel_json_xs
/root/perl5/bin/json_pp
/root/perl5/bin/validjson
/root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/JSON
/root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Cpanel/JSON
/root/perl5/lib/perl5/x86_64-linux-thread-multi/Cpanel/JSON
/root/perl5/lib/perl5/x86_64-linux-thread-multi/JSON
/root/perl5/lib/perl5/JSON
/root/perl5/lib/perl5/JSON.pm
/root/perl5/man/man1/cpanel_json_xs.1
/root/perl5/man/man1/json_pp.1
/root/perl5/man/man3/JSON::PP.3pm
/root/perl5/man/man3/JSON::PP::Boolean.3pm
/root/perl5/man/man3/JSON.3pm
/root/perl5/man/man3/JSON::backportPP.3pm
/root/perl5/man/man3/JSON::backportPP::Boolean.3pm
/root/perl5/man/man3/JSON::backportPP::Compat5005.3pm
/root/perl5/man/man3/JSON::backportPP::Compat5006.3pm
/root/perl5/man/man3/JSON::Parse.3pm
/root/perl5/man/man3/Cpanel::JSON::XS.3pm
/root/perl5/man/man3/Cpanel::JSON::XS::Boolean.3pm
/root/perl5/man/man3/Cpanel::JSON::XS::Type.3pm
/root/perl5/man/man3/JSON::MaybeXS.3pm
/root/perl5/man/man3/JSON::Tokenize.3pm
/root/perl5/man/man3/JSON::Whitespace.3pm

我只能假设它正在查看错误的cpan/perl目录。
有没有人可以帮忙或提供一些指导?

w9apscun

w9apscun1#

您将该模块安装在非标准目录(/root/perl5/lib/perl5/x86_64-linux-thread-multi)[1]中,并且没有告诉perl [2],或者您没有足够的权限访问它。
确保其他用户具有访问/root/perl5及其内容所需的权限。
要让perl知道在哪里找到模块,可以使用

export PERL5LIB=/root/perl5/lib/perl5

或者,在为机器上的每个人安装时,停止将模块安装在不寻常的位置。
取消设置PERL_MB_OPTPERL_MM_OPT(和PERL5LIB)为root,[3]然后重新安装模块。您可能希望删除/root/perl5以避免混淆。
1.您正在以root身份使用local::lib,安装模块“仅用于root”。
1.除了以root身份运行时,这就是为什么cpan在root时找到它。
1.例如,不使用local::lib作为root。

相关问题