我得到这个错误:
找不到Foo。pm在@INC
有没有比下载、解压、制作等更简单的方法来安装它?
我得到这个错误:
找不到Foo。pm在@INC
有没有比下载、解压、制作等更简单的方法来安装它?
当前回答
尝试应用::cpanminus:
# cpanm Chocolate::Belgian
它非常适合安装东西。它不提供CPAN或CPANPLUS的任何复杂功能,因此只要知道要安装哪个模块,就很容易使用。如果你还没有cpanminus,只需输入:
# cpan App::cpanminus
安装它。
也可以完全不使用cpan来安装它。基本的引导程序是,
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
欲了解更多信息,请访问App::cpanminus页面,并查看安装部分。
其他回答
在ubuntu上,大多数perl模块都已经打包好了,所以安装要比其他大多数需要编译的系统快得多。
例如,要在命令提示符下安装Foo::Bar,你通常只需要:
sudo apt-get install libfoo-bar-perl
遗憾的是,并非所有模块都遵循这种命名约定。
我知道的两种方法:
使用PPM:
在Windows (ActivePerl)中,我使用ppm
从命令行输入ppm。在ppm提示符下…
ppm> install foo
or
ppm> search foo
获取可用的foo模块列表。为所有命令键入help
使用cpan:
你也可以这样使用CPAN (*nix系统):
perl -MCPAN -e 'shell'
给你一个提示
cpan>
听到提示音…
cpan> install foo (again to install the foo module)
输入h以获得cpan的命令列表
看起来你已经得到了答案,但我想我应该插句话。这是我在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";
}
}
这对我来说很好,也许这里有你可以使用的东西。
另请参见Yes,即使您也可以使用CPAN。它展示了如何在没有root或sudo访问权限的情况下使用CPAN。
已经回答和接受的答案-但不管怎样:
以我之见,安装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