在@INC中找不到Foo.pm
在Unix操作系统下:
通常你会在shell中启动cpan:
$ cpan
并输入:
install Chocolate::Belgian
或者简写为:
cpan Chocolate::Belgian
在Windows操作系统下:
如果你在Windows上使用ActivePerl,那么PPM(Perl Package Manager)有许多与CPAN.pm相同的功能。
例如:
$ ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
参见CPAN FAQ中的如何安装Perl模块?
许多发行版都会将大量Perl模块作为软件包提供。
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
你应该始终优先使用它们,因为你可以从自动(安全)更新和卸载的便利性中受益。这在cpan工具本身中可能非常棘手。
对于 Gentoo,有一个很好的工具叫做g-cpan,它可以从 CPAN 构建/安装模块,并为您创建一个 Gentoo 包 (ebuild)。
ppm
使用连字符 -
是因为你需要指定你想要安装的发行版,这更加诚实。例如,如果你使用 cpan
安装 LWP
、LWP::Simple
或 LWP::UserAgent
,它将为你安装 libwww-perl
发行版。大多数发行版只包含一个与名称相同的模块,但也有几个例外情况。 - Borodin尝试使用 App::cpanminus:
# cpanm Chocolate::Belgian
它非常适合用于只需安装一些东西的情况。它不提供CPAN或CPANPLUS的更复杂功能,因此只要您知道要安装哪个模块,它就很容易使用。如果您尚未拥有cpanminus,只需键入:
# cpan App::cpanminus
安装的方法。
也可以不使用cpan来安装。基本的引导程序如下:
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
欲了解更多信息,请访问App::cpanminus页面并查看安装部分。
cpan
命令安装App::cpanminus
有些奇怪。通常的安装方法涉及引导程序,需要从http://cpanmin.us下载一部分内容,然后使用它来安装其余部分。这可以避免配置`cpan`和创建(此后)无用的`.cpan`目录。 - Chas. Owenscpanminus
。我发现cpanm
比cpan
更好,因为它不会将错误日志放在屏幕上,而是将它们存储在临时日志文件中,并在出现错误时提供路径。 - user13107我注意到有些人建议使用sudo来运行cpan。这曾经是必要的,用于安装到系统目录中,但现代版本的CPAN shell允许您配置它仅在安装时使用sudo。这样做更安全,因为这意味着测试不会以root身份运行。
如果您使用的是旧版的CPAN shell,只需安装新的cpan("install CPAN"),然后重新载入shell,它应该提示您配置这些新指令。
如今,当我在使用旧版的CPAN时,我做的第一件事就是更新shell并设置它以此方式操作,这样我就可以像普通用户一样完成大部分的cpan工作。
此外,我强烈建议Windows用户调查Strawberry Perl。这是一个Perl版本,它附带了预配置的CPAN shell和编译器。它还包括一些难以编译的Perl模块及其外部C库依赖项,特别是XML::Parser。这意味着在安装模块方面,您可以像其他Perl用户一样操作,并且往往会更加容易成功执行。
$sudo apt-get install cpan
吗? - isomorphismesApp::cpanminus
,使用它非常愉快。Philip Potter在这里建议使用它,您可以尝试这个Chas. Owens的答案。 - w.k如果您使用Ubuntu系统并想安装预装的Perl模块(例如geo::ipfree),请尝试以下步骤:
$ apt-cache search perl geo::ipfree libgeo-ipfree-perl - 一个查找IP地址所在国家的Perl模块
$ sudo apt-get install libgeo-ipfree-perl
有几个人提到了cpan实用工具,但它不仅仅是启动一个shell。只需给它要安装的模块,让它自己工作就行了。
$prompt> cpan Foo::Bar
如果您不给它任何参数,它将启动CPAN.pm shell。这适用于Unix、Mac,并且在Windows上应该也没问题(尤其是Strawberry Perl)。
还有其他一些可以使用cpan工具完成的事情。以下是当前功能的摘要(可能比随附CPAN.pm和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.
sudo perl -MCPAN -e 'install Foo'
已经有答案并且已被接受-但无论如何:
在我看来,在类unix系统上安装CPAN模块的最简单方法(对于Windows我不知道)是:
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
cpanm Foo
cpanm Module::One
cpanm Another::Module
Otto提出了一个好建议。这对于Debian以及任何其他的Debian衍生版也适用。缺失的部分是当apt-cache search找不到东西时该怎么做。
$ sudo apt-get install dh-make-perl build-essential apt-file
$ sudo apt-file update
然后,每当您想安装一个随机模块时:
$ cd ~/some/path
$ dh-make-perl --build --cpan Some::Random::Module
$ sudo dpkg -i libsome-random-module-perl-0.01-1_i386.deb
使用cpan 模块名命令。
$ cpan HTML::Parser
自动安装依赖项,请按以下步骤进行:
$ perl -MCPAN -e shell
cpan[1]> o conf prerequisites_policy follow
cpan[2]> o conf commit
exit
我更喜欢App::cpanminus,它可以自动安装依赖项。只需要执行以下命令:
$ cpanm HTML::Parser
cpan
使用的我的答案。 - vinc17