【问题标题】:Can't locate File/Remote.pm in @INC (@INC contains:无法在 @INC 中找到 File/Remote.pm(@INC 包含:
【发布时间】:2016-06-02 15:13:04
【问题描述】:

我遇到以下问题。

无法在 @INC 中找到 File/Remote.pm(@INC 包含: /pkg/qct/software/perl/q4_06/.lib/site_perl/5.8.8/CPANPLUS/Shell/Default/Plugins /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .)

如果我列出流动的文件实际上是存在的:

 ls /pkg/qct/software/perl/q4_06/.lib/site_perl/5.8.8/CPANPLUS/Shell/Default/Plugins
Diff.pm  HOWTO.pod  Remote.pm  RT.pm  Source.pm

我真的被困在这里了,这个脚本在 Solaris 上运行,为了减少许可证我已经将 100 多个站点转换为 centos,并且这个脚本需要在一些上运行,但我不太明白仅与谷歌一起完成这一步。

【问题讨论】:

  • 请不要在得到答案后将您的帖子编辑成一个全新的问题。它使人们编写答案的工作无效,并使未来的访问者感到困惑,因为有些答案将解决原始问题,而有些答案将解决新问题。而是发布一个新问题。

标签: linux perl centos perl-module


【解决方案1】:

该文件用于CPANPLUS::Shell::Default::Plugins::Remote[1]


@INC 包含

  • /pkg/qct/software/perl/q4_06/.lib/site_perl/5.8.8/CPANPLUS/Shell/Default/Plugins
  • /usr/local/lib64/perl5
  • /usr/local/share/perl5
  • /usr/lib64/perl5/vendor_perl
  • /usr/share/perl5/vendor_perl
  • /usr/lib64/perl5
  • /usr/share/perl5
  • .

所以 Perl 会检查

  • /pkg/qct/software/perl/q4_06/.lib/site_perl/5.8.8/CPANPLUS/Shell/Default/Plugins/File/Remote.pm
  • /usr/local/lib64/perl5/File/Remote.pm
  • /usr/local/share/perl5/File/Remote.pm
  • /usr/lib64/perl5/vendor_perl/File/Remote.pm
  • /usr/share/perl5/vendor_perl/File/Remote.pm
  • /usr/lib64/perl5/File/Remote.pm
  • /usr/share/perl5/File/Remote.pm
  • ./File/Remote.pm

该模块没有安装(或者它安装在 Perl 没有被告知要查看的目录中)。只需安装模块(使用cpan File::Remote)。


  1. 这带来了第二个问题:use CPANPLUS::Shell::Default::Plugins::Remote; 不起作用,因为

    /pkg/qct/software/perl/q4_06/.lib/site_perl/5.8.8
    

    应该被添加到@INC 而不是

    /pkg/qct/software/perl/q4_06/.lib/site_perl/5.8.8/CPANPLUS/Shell/Default/Plugins
    

【讨论】:

  • 谢谢,这不起作用,正如您在上面解释的那样。设置如下:/pkg/qct/software/perl/q4_06/.lib/site_perl/5.8.8 仍然得到:无法在@INC 中找到Plugins/Remote.pm .... 所以我尝试了cpan File:: Remote [root File]# cpan File::Remote CPAN: Storable loaded ok (v2.20) Running install for module 'File::Remote' /usr/bin/perl: symbol lookup error: /pkg/qct/software/perl /q4_06/.lib/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Data/Dumper/Dumper.so:未定义符号:Perl_Tstack_sp_ptr
  • 这是一个无关的问题。这可能是由@INC 中的错误值引起的。 (我认为您有两个 Perl 版本,并且您在使用另一个版本时尝试访问一个安装的模块。)错误的值可能是通过 PERL5LIB env var 提供的,因此清除该 var 应该可以解决问题。
  • 取消注释它,它运行了,但是,它把它放在 /usr/local/share/perl5/File 中,我可以将它复制到另一个目录吗?
  • 不要移动或复制任何文件。不要更改@INC(除了删除您添加的内容)。只需清除 PERL5LIB(永久)并运行 cpan File::Remote
  • 我知道了,必须禁用环境变量,安装它,然后重新启用它。现在可以用了,非常感谢:)
【解决方案2】:

Remote.pm 存在,但File/Remote.pm 不存在。

要么它不是正确的文件,要么你需要创建File 目录并将其移入。

ikegami 的评论看起来是正确的,但这是前者。这是错误的 Remote.pm。

您需要正确安装the correct module(例如使用cpan minus)。

【讨论】:

  • 啊,谢谢,我试试这个! :)
  • 不要移动那个文件!它适用于 CPANPLUS::Shell::Default::Plugins::Remote。
  • @BenCoughlan 您不能将CPANPLUS::Shell::Default::Plugins::Remote 的源代码复制到名为File 的目录中,并期望它神奇地成为File::Remote 的源代码。它们是完全不同的模块,做不同的事情;您的代码可能能够加载模块,但除此之外它就无法工作。
【解决方案3】:

【讨论】:

  • 为模块 'File::Remote' /usr/bin/perl 运行安装:符号查找错误:/pkg/qct/software/perl/q4_06/.lib/site_perl/5.8.8/x86_64 -linux-thread-multi/auto/Data/Dumper/Dumper.so:未定义符号:Perl_Tstack_sp_ptr [根文件]#
猜你喜欢
  • 2011-09-11
  • 1970-01-01
  • 2013-04-25
  • 2021-11-17
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 2013-11-04
  • 2019-07-17
相关资源
最近更新 更多