What's the easiest way to install a missing Perl module?

前端 未结 24 2712
情深已故
情深已故 2020-11-21 05:28

I get this error:

Can\'t locate Foo.pm in @INC

Is there an easier way to install it than downloading, untarring, making, etc?

相关标签:
24条回答
  • 2020-11-21 05:37

    Also see Yes, even you can use CPAN. It shows how you can use CPAN without having root or sudo access.

    0 讨论(0)
  • 2020-11-21 05:37

    Many times it does happen that cpan install command fails with the message like "make test had returned bad status, won't install without force"

    In that case following is the way to install the module:

    perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"
    
    0 讨论(0)
  • 2020-11-21 05:39

    sudo perl -MCPAN -e 'install Foo'

    0 讨论(0)
  • 2020-11-21 05:41

    Otto made a good suggestion. This works for Debian too, as well as any other Debian derivative. The missing piece is what to do when apt-cache search doesn't find something.

    $ sudo apt-get install dh-make-perl build-essential apt-file
    $ sudo apt-file update
    

    Then whenever you have a random module you wish to install:

    $ cd ~/some/path
    $ dh-make-perl --build --cpan Some::Random::Module
    $ sudo dpkg -i libsome-random-module-perl-0.01-1_i386.deb
    

    This will give you a deb package that you can install to get Some::Random::Module. One of the big benefits here is man pages and sample scripts in addition to the module itself will be placed in your distro's location of choice. If the distro ever comes out with an official package for a newer version of Some::Random::Module, it will automatically be installed when you apt-get upgrade.

    0 讨论(0)
  • 2020-11-21 05:45

    Lots of recommendation for CPAN.pm, which is great, but if you're using Perl 5.10 then you've also got access to CPANPLUS.pm which is like CPAN.pm but better.

    And, of course, it's available on CPAN for people still using older versions of Perl. Why not try:

    $ cpan CPANPLUS
    
    0 讨论(0)
  • 2020-11-21 05:46

    A couple of people mentioned the cpan utility, but it's more than just starting a shell. Just give it the modules that you want to install and let it do it's work.

    $prompt> cpan Foo::Bar
    

    If you don't give it any arguments it starts the CPAN.pm shell. This works on Unix, Mac, and should be just fine on Windows (especially Strawberry Perl).

    There are several other things that you can do with the cpan tool as well. Here's a summary of the current features (which might be newer than the one that comes with CPAN.pm and perl):

    -a
    Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.
    
    -A module [ module ... ]
    Shows the primary maintainers for the specified modules
    
    -C module [ module ... ]
    Show the Changes files for the specified modules
    
    -D module [ module ... ]
    Show the module details. This prints one line for each out-of-date module (meaning,
    modules locally installed but have newer versions on CPAN). Each line has three columns:
    module name, local version, and CPAN version.
    
    -L author [ author ... ]
    List the modules by the specified authors.
    
    -h
    Prints a help message.
    
    -O
    Show the out-of-date modules.
    
    -r
    Recompiles dynamically loaded modules with CPAN::Shell->recompile.
    
    -v
    Print the script version and CPAN.pm version.
    
    0 讨论(0)
提交回复
热议问题