我是Perl的新手。运行脚本时出现以下错误:
Can't locate URI.pm in @INC (@INC contains: /usr/local/packages/perl_remote/5.6.1/lib/5.6.1/i86pc-solaris /usr/local/packages/perl_remote/5.6.1/lib/5.6.1 /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/i86pc-solaris /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1 /usr/local/packages/perl_remote/5.6.1/lib/site_perl .) at (eval 2) line 3. Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/HTTP/Request.pm line 3. Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/UserAgent.pm line 10. BEGIN failed--compilation aborted at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/UserAgent.pm line 10. Compilation failed in require at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/Simple.pm line 26. BEGIN failed--compilation aborted at /usr/local/packages/perl_remote/5.6.1/lib/site_perl/5.6.1/LWP/Simple.pm line 26. Compilation failed in require at txotf_0_install.pl line 35. BEGIN failed--compilation aborted at txotf_0_install.pl line 35.
可能的原因是什么,以及如何让脚本工作。任何帮助将不胜感激。
答案 0 :(得分:8)
可能您没有安装URI
。它可能不会保存在您的计算机上的任何位置,也可能会“安装”在某个位置。
如果必须从CPAN安装它,则可能需要管理员权限才能将其放入列出的目录中。但CPAN将允许您将其安装到用户目录,因此您仍然可以安装它。
因此,如果您无法在@INC
中列出的目录中安装模块,那么有各种方法。
答案 1 :(得分:7)
@INC
中的非标准路径(例如/usr/local/packages
,perl_remote
等)向我表明这是为特定目的安装的自定义perl
,可能会降低功能防止恶作剧。
询问系统管理员。
答案 2 :(得分:1)
数组@INC包含要查看要评估的Perl脚本的位置列表。您的脚本将不会运行,因为它不在@INC列表中。之一:
答案 3 :(得分:0)
这并不是说任何其他答案都不是很好的建议(它们很可能解决你的问题),但我遇到了一个类似的问题,让我困惑了几个小时。虽然我不确定这是否解决了OP的问题,但也许有人在未来遇到这种问题会节省一些时间进行故障排除......
我在一台新的CentOS服务器上发现,尽管@INC报告了我的自定义库的路径,尽管所有文件和目录权限都设置正确,但是mod_perl仍然挽救了“无法找到”模块的消息有问题。这令人费解,因为Apache的PerlRequire使用的具有相同“use lib”语句的类似脚本能够毫无问题地运行。
罪魁祸首原来是SELinux,禁用它立即解决了这个问题。有关/ var / log / messages信息的更多详细信息可以找到here。{/ p>可以找到这个以及其他常见的抱怨。
答案 4 :(得分:0)
在我的情况下,我只是将perl文件夹复制到另一台机器,并将bin文件夹的路径添加到PATH环境变量。为了解决这个问题,我必须运行正确的ActivePerl安装,最终为perl正确设置所有环境。