无root安装CPAN模块

时间:2012-07-06 18:00:43

标签: perl cpan

我按照此helpful tutorial为我的用户安装了Perl。我很抱歉链接到外部网站,但我认为阅读这是了解如何回答这个问题的唯一方法。

Anywho,我正在提供CPAN配置的默认值 - 通过教程创建的.cpanCPAN目录 - 但由于某种原因,CPAN仍然想要深入研究/usr/lib/ - 它只是无法到达 - 当我尝试安装模块时。这是在安装DBD::CSV时。

以下是错误消息:

All tests successful (7 subtests UNEXPECTEDLY SUCCEEDED), 3 tests skipped.
Files=23, Tests=706,  3 wallclock secs ( 2.28 cusr +  0.54 csys =  2.82 CPU)
/usr/bin/make test -- OK
Running make install
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/perl5lib/lib/Bundle/DBD'
mkdir /perl5lib: Permission denied at /usr/lib/perl5/5.8.8/ExtUtils/Install.pm line 457
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1
make: *** [pure_site_install] Error 13
/usr/bin/make install  -- NOT OK

似乎是错误的perl5lib

4 个答案:

答案 0 :(得分:5)

是的,local :: lib有帮助。我建议使用cpanm而不是cpan。我认为它默认安装〜/ perl5 / lib / perl5。这是一个super useful tutorial

答案 1 :(得分:5)

local::lib导致安装程序使用INSTALL_BASE,我认为它已被破坏。我使用perlbrew来安装Perl的本地副本。

  • 您不会弄乱系统安装的Perl,因此不会破坏您的操作环境。
  • 允许您安装多个版本的Perl并且没有麻烦。
  • 不需要使用INSTALL_BASE。
  • 无需特殊权限。

答案 2 :(得分:2)

看看这个模块:local::lib

答案 3 :(得分:0)

你是否在cpan中配置myconfig.pm而不是让它自动填写所有默认值?在cpan配置期间,您需要为Makefile.PL部分添加PREFIX =“”,以便将模块安装到您具有写访问权限的新位置。由于已经为您自动配置,请进入.cpan / CPAN /,查找MyConfig.pm并进行编辑。找到“makepl_arg”行并更改[]中的值以包含PREFIX =“”。然后尝试使用perl -MCPAN -e shell并安装模块。