我得到这个错误:

找不到Foo。pm在@INC

有没有比下载、解压、制作等更简单的方法来安装它?


当前回答

已经回答和接受的答案-但不管怎样:

以我之见,安装CPAN模块最简单的方法(在unix类系统上,不了解windows)是:

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

上面是安装称为cpanm的“零配置CPAN模块安装程序”。(可能需要几分钟来安装-不要打断这个过程)

And after - simply:

cpanm Foo
cpanm Module::One
cpanm Another::Module

其他回答

在Fedora Linux或Enterprise Linux上,yum还跟踪perl库依赖关系。因此,如果perl模块可用,并且某些rpm包导出该依赖项,它将为您安装正确的包。

yum install 'perl(Chocolate::Belgian)'

(很可能是perl- chocolate - belgium包,甚至是ChocolateFactory包)

看起来你已经得到了答案,但我想我应该插句话。这是我在Ubuntu(或debian服务器)上的一些脚本中所做的事情。

#!/usr/bin/perl

use warnings;
use strict;

#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV{'PATH'} = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';

#Fill this with the perl modules required for your project
my @perl = qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTime Config::Tiny Proc::ProcessTable);

chomp(my $curl = `which curl`);

if(!$curl){ system('apt-get install curl -y > /dev/null'); }

chomp(my $cpanm = system('/bin/bash', '-c', 'which cpanm &>/dev/null'));

#installs cpanm if missing
if($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus'); }

#loops through required modules and installs them if missing
foreach my $x (@perl){
    eval "use $x";
    if($@){
        system("cpanm $x");
        eval "use $x";
    }
}

这对我来说很好,也许这里有你可以使用的东西。

即使它应该工作:

cpan -i module_name

sudo perl -MCPAN -e安装Foo

尝试应用::cpanminus:

# cpanm Chocolate::Belgian

它非常适合安装东西。它不提供CPAN或CPANPLUS的任何复杂功能,因此只要知道要安装哪个模块,就很容易使用。如果你还没有cpanminus,只需输入:

# cpan App::cpanminus

安装它。

也可以完全不使用cpan来安装它。基本的引导程序是,

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

欲了解更多信息,请访问App::cpanminus页面,并查看安装部分。