我得到这个错误:
找不到Foo。pm在@INC
有没有比下载、解压、制作等更简单的方法来安装它?
我得到这个错误:
找不到Foo。pm在@INC
有没有比下载、解压、制作等更简单的方法来安装它?
当前回答
奥托提了个好建议。这也适用于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的官方包,它将在你apt-get升级时自动安装。
其他回答
有几个人提到了cpan实用程序,但它不仅仅是启动一个shell。只要给它你想安装的模块,让它做它的工作。
$prompt> cpan Foo::Bar
如果你不给它任何参数,它就会启动CPAN。点壳。这可以在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下运行cpan。在过去,安装到系统目录中是必须的,但是CPAN shell的现代版本允许您配置它,只使用sudo进行安装。这要安全得多,因为这意味着测试不会以根用户身份运行。
如果您有一个旧的CPAN shell,只需安装新的CPAN(“install CPAN”),当您重新加载shell时,它将提示您配置这些新指令。
现在,当我在一个有旧CPAN的系统上时,我要做的第一件事是更新shell并将其设置为这样做,这样我就可以作为一个普通用户完成大部分CPAN工作。
另外,我强烈建议Windows用户研究草莓Perl。这是一个Perl版本,附带一个预配置的CPAN外壳和一个编译器。它还包括一些难以编译的Perl模块及其外部C库依赖项,特别是XML::Parser。这意味着当涉及到安装模块时,您可以像其他Perl用户一样做同样的事情,而且事情往往会“工作”得更频繁。
在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页面,并查看安装部分。
很多时候,cpan install命令失败,出现类似这样的消息 “使测试已返回坏状态,不强制将不会安装”
在这种情况下,下面是安装模块的方法:
perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"