我得到这个错误:

找不到Foo。pm在@INC

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


当前回答

如果您希望将新模块放入cpan shell未配置为使用的自定义位置,那么以下操作可能会很方便。

 #wget <URL to the module.tgz>
 ##unpack
 perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install

其他回答

安全解决方案

许多回答都提到了cpan实用程序的使用(它使用cpan .pm),而没有提到安全性。CPAN 2.27及更早版本默认配置urllist使用http URL(即http://www.cpan.org/),允许MITM攻击,因此是不安全的。这是用来下载checksum文件的,因此需要将其更改为安全URL(例如https://www.cpan.org/)。

因此,在运行cpan并接受默认配置之后,您需要修改生成的MyConfig。PM文件(输出全路径)如下所示。取代

'urllist' => [q[http://www.cpan.org/]],

by

'urllist' => [q[https://www.cpan.org/]],

注意:https是不够的;你还需要一个你可以信任的网站。所以,如果你想选择任意的镜子,要小心。

然后就可以按常规方式使用cpan了。

我在rt.cpan.org上关于不安全URL的错误报告。

另请参见Yes,即使您也可以使用CPAN。它展示了如何在没有root或sudo访问权限的情况下使用CPAN。

在ubuntu上,大多数perl模块都已经打包好了,所以安装要比其他大多数需要编译的系统快得多。

例如,要在命令提示符下安装Foo::Bar,你通常只需要:

sudo apt-get install libfoo-bar-perl

遗憾的是,并非所有模块都遵循这种命名约定。

尝试应用::cpanminus:

# cpanm Chocolate::Belgian

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

# cpan App::cpanminus

安装它。

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

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

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

我注意到一些人建议在sudo下运行cpan。在过去,安装到系统目录中是必须的,但是CPAN shell的现代版本允许您配置它,只使用sudo进行安装。这要安全得多,因为这意味着测试不会以根用户身份运行。

如果您有一个旧的CPAN shell,只需安装新的CPAN(“install CPAN”),当您重新加载shell时,它将提示您配置这些新指令。

现在,当我在一个有旧CPAN的系统上时,我要做的第一件事是更新shell并将其设置为这样做,这样我就可以作为一个普通用户完成大部分CPAN工作。

另外,我强烈建议Windows用户研究草莓Perl。这是一个Perl版本,附带一个预配置的CPAN外壳和一个编译器。它还包括一些难以编译的Perl模块及其外部C库依赖项,特别是XML::Parser。这意味着当涉及到安装模块时,您可以像其他Perl用户一样做同样的事情,而且事情往往会“工作”得更频繁。