模块安装成功但无法找到

时间:2015-03-10 12:34:05

标签: perl cpan perlbrew cpanm

我想知道为什么我得到“安装依赖项失败:模块'模块::名称'未安装”,即使已安装依赖项。我正在使用perlbrewcpanm。以下是我尝试安装的许多模块会发生什么情况的示例:

  1. 我尝试安装示例URI::ws,如下所示
  2. hamid@caspian:~$ /home/hamid/perl5/perlbrew/bin/cpanm --installdeps URI::ws
    --> Working on URI::ws
    Fetching http://www.cpan.org/authors/id/P/PL/PLICEASE/URI-ws-0.03.tar.gz ... OK
    Configuring URI-ws-0.03 ... OK
    ==> Found dependencies: URI
    --> Working on URI
    Fetching http://www.cpan.org/authors/id/E/ET/ETHER/URI-1.67.tar.gz ... OK
    Configuring URI-1.67 ... OK
    Building and testing URI-1.67 ... OK
    Successfully installed URI-1.67
    ! Installing the dependencies failed: Module 'URI' is not installed
    ! Bailing out the installation for URI-ws-0.03.
    1 distribution installed
    
    1. 它告诉我URI未安装。所以我安装URI如下:
    2. hamid@caspian:~$ /home/hamid/perl5/perlbrew/bin/cpanm URI
      --> Working on URI
      Fetching http://www.cpan.org/authors/id/E/ET/ETHER/URI-1.67.tar.gz ... OK
      Configuring URI-1.67 ... OK
      Building and testing URI-1.67 ... OK
      Successfully installed URI-1.67
      1 distribution installed
      
      1. 我回到原来想要的URI::ws,这就是我得到的:
      2. hamid@caspian:~$ /home/hamid/perl5/perlbrew/bin/cpanm URI::ws
        --> Working on URI::ws
        Fetching http://www.cpan.org/authors/id/P/PL/PLICEASE/URI-ws-0.03.tar.gz ... OK
        Configuring URI-ws-0.03 ... OK
        ==> Found dependencies: URI
        --> Working on URI
        Fetching http://www.cpan.org/authors/id/E/ET/ETHER/URI-1.67.tar.gz ... OK
        Configuring URI-1.67 ... OK
        Building and testing URI-1.67 ... OK
        Successfully installed URI-1.67
        ! Installing the dependencies failed: Module 'URI' is not installed
        ! Bailing out the installation for URI-ws-0.03.
        1 distribution installed
        

        任何人都可以告诉我为什么会这样,我能做些什么来阻止它?如果您有任何我需要的信息,请告诉我。

        谢谢

2 个答案:

答案 0 :(得分:4)

感谢https://stackoverflow.com/users/2019415/g-cito

  

hamid @ caspian:〜$ PERL_MM_OPT =“”; PERL_MB_OPT = “”;

完成了这项工作:)

local::lib搞砸了。 URI.pm已安装但未安装在perlbrew目录下。

答案 1 :(得分:2)

使用perlbrew,您可以安装perlbrew specific cpanm,这有助于安装使用perlbrew工具安装/管理的各种perls/。我发现这很有效。

但是,如果您混合使用自己的local::lib并设置相关的环境变量,例如perlbrewPERL5LIB,{{{},那么PERL_MM_OPT 就会混淆1}} 等。(例如参见perlbrew and local::lib at the same time?中@cjm的帖子)。这些环境变量中的一些可以与perlbrew自己的环境进行交互和干扰,因此通常最好避免混合它们或者仅仅让perlbrew使用它们自己的那些变量版本来管理环境。

当然可以使用PERL_MB_OPT环境"内部"使用lib命令perlbrew)并使用不同的perl版本进行非常复杂的测试,运送带有需求的应用程序( c.f。 Carton)。在我自己的环境中,我能够管理系统perl;用户安装了使用系统perl的local::lib;所有人都明智地使用了环境变量(感谢在版本之间进行迁移时的临时设置)以及一大堆perlbrew perls。

这种设置很快就会变得复杂,很难复制。 perlbrew的最大优势之一是您可以在多台机器上轻松设置匹配的perl环境;或同一台机器上的不同perl环境。