当local :: lib存在时,如何在站点范围内安装CPAN模块?

Dav*_*man 5 perl cpan padre locallib

我最近建立了一个新系统,并希望安装Padre来检查它.Padre安装说明专门说安装local :: lib,所以我这样做了(虽然我之前从未需要它).然后我继续安装其他几个模块,从我的普通用户帐户运行CPAN,sudo以处理安装所需的根部分.

然后,时间来测试这些模块需要支持的其中一个网络应用程序,而且,看哪,apache找不到它们.他们从命令行加载得很好,快速查看~/perl5确认我怀疑local :: lib劫持了我的CPAN会话并在那里安装了这些模块,而不是在站点范围内安装,尽管我的CPAN配置包括

makepl_arg         [INSTALLDIRS=site]
mbuildpl_arg       [--installdirs site]
Run Code Online (Sandbox Code Playgroud)

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

(我希望安装任何模块,~/perl5除非Padre坚持他们在那里.我开发的代码有自己的项目特定的目录位置,其他一切都应该是站点范围的.我不需要私有的catch-all位置. )

Dav*_*man 8

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

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

  • 这就是为什么我认为 local::lib、perlbrew 等虽然技术上很好,但在社会上却很糟糕。它应该让已经了解这个过程的人更容易做事情,而不是让你忽略它对你的作用。 (2认同)