当前位置:  开发笔记 > 编程语言 > 正文

安装丢失的Perl模块最简单的方法是什么?

如何解决《安装丢失的Perl模块最简单的方法是什么?》经验,为你挑选了11个好方法。

我收到此错误:

Can't locate Foo.pm in @INC

有没有比下载,解决,制作等更容易安装它的方法?



1> Benedikt Wal..:

在Unix上:

通常你在shell中启动cpan:

# cpan

并输入

install Chocolate::Belgian

或者简短形式:

cpan Chocolate::Belgian

在Windows上:

如果您在Windows上使用ActivePerl,则PPM(Perl程序包管理器)具有与CPAN.pm相同的功能.

例:

# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart

请参阅如何安装Perl模块?在CPAN FAQ中

许多发行版都将很多perl模块作为包发布.

Gentoo:类别dev-perl

Debian的: apt-cache search 'perl$'

您应该始终更喜欢它们,因为您可以从自动(安全)更新和易于删除中受益.使用cpan工具本身可能非常棘手.

对于Gentoo,有一个很好的工具叫做g-cpan,它可以从CPAN构建/安装模块,并为你创建一个Gentoo包(ebuild).


简短形式只是命令行中的"cpan Chocolate :: Belgian":)
只需"ppm"即可打开GUI,但后面会有命令停留在命令行.所以,"ppm帮助","ppm安装......"等.
IIRC最新的ActivePerl不再具有命令行ppm,它现在打开了一个奇特的GUI.
@MatthewLock:`ppm`使用连字符`-`,因为你指定了你要安装的*distribution*,这更加诚实.例如,如果您使用`cpan`来安装`LWP`,`LWP :: Simple`或`LWP :: UserAgent`,它将为您安装发行版`libwww-perl`.大多数发行版包含一个具有等效名称的模块,但有几个例外

2> Philip Potte..:

试试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`目录的创建.

3> Dave Rolsky..:

我注意到一些人建议在sudo下运行一个cpan.以前需要将其安装到系统目录中,但现代版本的CPAN shell允许您将其配置为使用sudo 进行安装.这样更安全,因为这意味着测试不会以root身份运行.

如果你有一个旧的CPAN shell,只需安装新的cpan("安装CPAN"),当你重新加载shell时,它应该提示你配置这些新的指令.

现在,当我使用旧CPAN的系统时,我要做的第一件事是更新shell并将其设置为执行此操作,这样我就可以将我的大部分cpan工作作为普通用户.

另外,我强烈建议Windows用户调查草莓Perl.这是Perl的一个版本,它与预配置的CPAN shell和编译器一起打包.它还包括一些难以编译的Perl模块及其外部C库依赖项,特别是XML :: Parser.这意味着在安装模块时,您可以像其他每个Perl用户一样执行相同的操作,并且事情往往更加"正常工作".



4> Otto..:

如果您使用的是Ubuntu并且想要安装预打包的perl模块(例如,geo :: ipfree),请尝试以下操作:

    $ apt-cache search perl geo::ipfree
    libgeo-ipfree-perl - A look up country of ip address Perl module

    $ sudo apt-get install libgeo-ipfree-perl



5> brian d foy..:

有几个人提到了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.



6> dreeves..:

sudo perl -MCPAN -e 'install Foo'



7> Corion..:

另请参阅是,即使您可以使用CPAN.它显示了如何在没有root或sudo访问权限的情况下使用CPAN.



8> mikegrb..:

奥托提出了一个很好的建议.这也适用于Debian,以及任何其他Debian衍生产品.缺少的部分是当apt-cache搜索找不到东西时要做的事情.

$ 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

这将为您提供一个deb软件包,您可以安装它来获取Some :: Random :: Module.这里的一大好处是手册页和示例脚本以及模块本身将放置在您的发行版所选位置.如果发行版有一个更新版本的Some :: Random :: Module的官方软件包,它会在你升级时自动安装.



9> jm666..:

已经回答并接受了答案 - 但无论如何:

恕我直言,安装CPAN模块最简单的方法(在类似unix的系统上,并且不知道wondows)是:

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

以上是安装"零配置CPAN模块安装程序"调用cpanm.(可能需要几分钟才能安装 - 不要破坏过程)

之后 - 简单地说:

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



10> Dave Cross..:

很多建议CPAN.pm,这很好,但如果你正在使用Perl 5.10那么你也可以访问CPANPLUS.pm哪个CPAN.pm更好.

当然,它CPAN仍适用于仍在使用旧版本Perl的用户.为什么不尝试:

$ cpan CPANPLUS



11> 小智..:

很多时候,cpan install命令失败的情况确实发生了,例如 "make test has bad state,不会没有强制安装"

在这种情况下,以下是安装模块的方法:

perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有