当 OS X El Capitan 推出时,使用 CPAN 添加或更新 Perl 模块的功能就消失了。看来脚本要么想改变/usr/bin
,现在已被禁止,要么试图使用/sw/usr/bin
不存在的二进制文件,/usr/bin
而是 。Perl 本身无法安装,因为它想安装到/usr/bin
而不是/usr/local/bin
。
使用这些脚本的脚本在哪里/sw/usr/bin
?似乎它们应该使用 PATH 来定位二进制文件,而不是对其进行硬编码。
有人知道如何修复 El Capitan 上的 Perl 和 CPAN 吗?详细说明会很有帮助。
答案1
向 OSX El Capitan 附带的 perl 添加新的 CPAN 包没有遇到任何问题。默认情况下,它们会构建在您的主目录中,并安装在/Library/Perl/5.18/
具有 root 权限可写入的位置。
你提到的前缀/sw/
似乎来自芬克安装。如果您以前从 Fink 安装了另一个 perl,您可能需要更新您的 Fink 安装并更新来自它的 perl 包。
如果你确定你没有使用 Fink,并且想要运行 OS X 提供的 perl 版本之外的另一个版本,那么你可以使用自制。它将安装在 中/usr/local
,您可以调用它,但所有 OSX perl 程序将继续使用 OSX 附带的 perl 版本。请注意 Fink 和 Homebrew 不能很好地相互配合,最好坚持使用一个。
最后,如果你想运行多个 perl 版本,并能够在它们之间来回切换,我建议你看看perlbrew。
一些其他有用的命令可以进一步调试你的 perl 安装:
which perl
将告诉您当前的 perl exec 安装在哪里perl -V
将为您提供有关 perl 版本、其编译日期和选项以及搜索模块的包含路径的更多信息perldoc perllocal
将列出您使用 CPAN 本地安装的 perl 模块
关于 CPAN,正如您所注意到的,常规 CPAN 升级会失败。不过,有一个解决方案,即告诉 CPAN 安装在 中/usr/local/bin/
。我已记录了 CPAN 升级在此回答。