【问题标题】:ActivePerl CPAN and .tshrcActivePerl CPAN 和 .tshrc
【发布时间】:2019-07-24 12:01:20
【问题描述】:

我在 Mac OS X 上安装了 ActivePerl (5.24.3.1),并在 CPAN 安装中造成了“严重破坏”。新安装与“sites/lib/”中的“core CPAN.pms”分开。

无论如何,我在我的目录 .cshrc 中添加了以下内容

setenv PERL5LIB PERL5LIB:/usr/local/ActivePerl-5.24/lib:/usr/local/ActivePerl-5.24/site/lib

我编造了,但似乎一切正常。它是有效的代码吗?

【问题讨论】:

  • Re "我发现新安装与 "core CPAN.pms" 是分开的,位于一个名为 "sites/lib/" 的偷偷摸摸的目录中(奇怪)。",嗯,这很正常。用户安装、供应商安装和核心模块应安装在不同的目录中,“站点”是用户安装模块的正常名称。见this
  • 你不应该告诉 Perl 在哪里寻找这些。未设置PERL5LIBperl -le'print for @INC' 的输出是什么,perl -V:'install(privlib|archlib|vendorlib|vendorarch|sitelib|sitearch)' 的输出是什么?
  • 是的,你是对的,它不需要,问题是用户访问“站点”。

标签: perl cpan tcsh


【解决方案1】:

该行正确附加到tcsh 中的环境变量PERL5LIB

来自我系统上的man tcsh

setenv [名称 [值]]

不带参数,打印所有环境变量的名称和值。给定名称,将环境变量名称设置为 value,或者在没有 value 的情况下,设置为空字符串。

tcsh 中的环境变量可以设置为表示列表的值,方法是用冒号 (:) 分隔条目。因此说PERL5LIB:... 是一种附加到PERL5LIB 现有值的方法。

PERL5LIB,正如 in perlrun 所解释的那样,是

在查看标准库和当前目录之前要在其中查找 Perl 库文件的目录列表。任何特定于体系结构和特定于版本的目录,例如指定位置下的 version/archname/、version/ 或 archname/(如果存在)都会自动包含在内,并在解释器启动时完成此查找。

但请注意,“当前目录”不再搜索库,这是现代 Perl 版本的安全增强功能。

因此,您的行是将/usr/local/ActivePerl 位置添加到您的 Perl 版本中设置的默认路径中。

我不知道 ActivePerl 如何以及为什么在 Mac OS X 上“对 CPAN 安装造成严重破坏”(?)。我认为您安装了另一个 Perl(通过您提到“CPAN 安装”),但我很困惑你现在使用的是哪一个,一旦 ActiveState 存在(以及?)。

【讨论】:

  • 谢谢!我现在正在使用 ActiveState 的 ActivePerl(更高版本)。困难在于用户安装的 CPAN 模块被转储在这里“/usr/local/ActivePerl-5.24/site/lib”,这是一个根所有权目录。我以为他们会在这里,“/usr/local/ActivePerl-5.24/lib”,我只是想不通为什么在没有“sudo”的情况下运行脚本时出现“权限被拒绝”错误。我误读了 cpan shell 中的错误输出。
  • 我想“havoc”(计算机)可能更好地描述为“angst”(我)。希望对您有所帮助。
【解决方案2】:

总结,@INC 命令行查询的输出清楚地表明 ActiveStates Perl 自动查看 CPAN 库,因此 .cshrc 中的 "setenv PERL5LIB PERL5LIB:....:...." 将其复制为 @ikegami 标识。

Perl 的最新稳定 ActiveStates 实现工作正常,主要问题是对“sites/lib”目录的权限(OS X 安装不是 Linux)。

但是,我的编码应用程序(BBEdit,版本 12.6.1)确实需要在 .cshrc 中设置 PERL5LIB,然后才能运行“运行”功能。所以@zdim 响应在上下文中很有用。感谢两位响应者,不胜感激。

【讨论】:

    猜你喜欢
    • 2018-12-13
    • 2012-03-25
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多