7

我最近建立了一个新系统,想安装 Padre 来检查一下。Padre 安装说明专门说要安装 local::lib,所以我这样做了(尽管我以前从未需要它)。然后我继续安装其他几个模块,从我的普通用户帐户运行 CPANsudo来处理安装中需要 root 的部分。

然后是时候测试这些模块需要支持的 Web 应用程序之一,你瞧,apache 找不到它们。~/perl5尽管我的 CPAN 配置包括

makepl_arg         [INSTALLDIRS=site]
mbuildpl_arg       [--installdirs site]

我需要对我的 CPAN 配置做些什么,以便在安装了 local::lib 的情况下在站点范围内安装模块?或者 Padre 没有它还能工作,我可以完全删除 local::lib 吗?

(我希望安装任何模块,~/perl5除非 Padre 坚持要求它们在那里。我正在开发的代码有自己的项目特定目录位置,其他所有内容都应该是站点范围的。我不需要一个私人的包罗万象的位置。 )

4

3 回答 3

11

知道了。根据local::lib 的 CPAN 页面上的说明,我已经设置export PERL_MM_OPT='INSTALL_BASE=~me/perl',它覆盖了我的 CPAN 配置中的设置。快速export PERL_MM_OPT=让我回到正确的安装位置。

一方面,这就是我盲目遵循指示的结果。另一方面,我希望o conf显示正在使用的实际配置设置,而不是保存的 CPAN 配置中的那些设置(即使环境变量覆盖了它们)。

于 2010-10-22T17:14:18.377 回答
3

快速导出 PERL_MM_OPT= 让我回到了正确的安装位置。

当我尝试在全球范围内安装 Starman 时,这对我没有帮助。我不得不编辑 /root/.bashrc 来评论(或删除)下一行:

  1. 导出 PERL_LOCAL_LIB_ROOT="$PERL_LOCAL_LIB_ROOT:/root/perl5";
  2. 导出 PERL_MB_OPT="--install_base /root/perl5";
  3. 导出 PERL_MM_OPT="INSTALL_BASE=/root/perl5";
  4. 导出 PERL5LIB="/root/perl5/lib/perl5:$PERL5LIB";
  5. 导出 PATH="/root/perl5/bin:$PATH";
于 2015-05-25T13:20:47.637 回答
1

根据此评论,似乎local::lib安装了自己的 CPAN.pm 版本。如果是这种情况,您可能需要找到原始的 CPAN.pm 并确保在运行 CPAN shell 时加载该文件。就像是:

perl -I /usr/lib/perl5 -MCPAN -e shell

可能会这样做。您可能还会发现perl -V查看 Perl 编译器为其模块使用的包含路径很有用。

于 2010-10-22T15:08:29.383 回答