如何在Mountain Lion上重新安装Perl内置的Mac OS X?


8

我4天前更新到Mountain Lion,然后意识到我的perl脚本不再起作用。所以我安装了ActivePerl 5.14(最新版本),因为我认为perl已被删除。安装ActivePerl之后,尽管我的程序仍然无法运行:

Warning message:
running command 'perl calc.pl' had status 2 
Can't locate Excel/Writer/XLSX.pm in @INC (@INC contains:    
/Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 
/Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 
/Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level 
/System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-
2level /System/Library/Perl/Extras/5.12 .) at test.pl line 3.
BEGIN failed--compilation aborted at calc.pl line 3.

在终端中,当我键入perl -v时,表明它使用了新安装的ActivePerl。我使用sudo氏族->安装Excel :: Writer :: XLSX来安装缺少的模块。但是,它不是为ActivePerl 5.14而是为5.12安装的。

自己的Mac OS X Perl接缝将在这里安装:

bash-3.2$ ls /Library/Perl/
5.10    5.12    Updates
bash-3.2$ ls /System/Library/Perl/
5.10    5.12    Extras  lib
bash-3.2$

这里还有一个版本:

bash-3.2$ ls /opt/local/lib/perl5/
5.12.4      site_perl   vendor_perl

我认为最好是通过运行ActivePerl卸载程序来删除它。我这样做了,并且还删除了5.12.4以及/ opt / local / lib / perl5中的site_perl目录。

然后,我想使用cpan重新安装XLSX :: Writer模块。我以为是然后将其安装到旧的perl目录中。但是,运行cpan现在会导致以下错误:

bash-3.2$ sudo cpan
Can't locate strict.pm in @INC (@INC contains:    
/opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/site_perl/5.12.4 
/opt/local/lib/perl5/vendor_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.4 /opt/local/lib/perl5/5.12.4/darwin-multi-
2level /opt/local/lib/perl5/5.12.4 /opt/local/lib/perl5/site_perl 
/opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.3 /opt/local/lib/perl5/vendor_perl .) at 
/opt/local/bin/cpan line 5.
BEGIN failed--compilation aborted at /opt/local/bin/cpan line 5.

我现在不知道该怎么办。我认为我能做的最好的就是大概重新安装Mac OS X自己的Perl,该怎么做?


您是否安装了Macport?来自/ opt / local / bin的猜测
user151019

是的,我愿意。我只是重新安装了xcode和开发人员命令行工具,但仍然相同...我可能只是重新安装了整个系统,并通过时间机器恢复了我的一些东西。无论如何,我们都
不愿意

您需要确定要使用的Perl-Apple,macports或activestate,然后确保@INC中仅出现一个-告诉我们我们可以帮助您使用
Perl151019

好吧,我想使用apples perl,但是要能够使用它,我还需要为该版本的perl安装XLSX.pm模块。但是,由于删除了一些文件夹,我无法再启动cpan ...您认为最好的方法是?
user26392

您删除了哪些目录?
user151019

Answers:


6

我在另一个网站上找到了以下命令

$ sudo perl -MCPAN -e'CPAN :: Shell-> notest(安装=> CPAN :: Shell-> r)'

这更新了我所有的perl模块,并且一切都恢复了正常。不知道为什么或什么,但不在乎它现在正在工作。


这是该命令的来源之一
-BryanH

0

由于各种原因,升级操作系统需要单独升级/重新安装MacPorts。开发人员实际上已经创建了一个非常漂亮的“ 迁移”页面,其中详细介绍了在升级操作系统后使端口环境再次运行所需的过程。

概括来说,您需要遵循的步骤是:

  1. 下载并安装新的Xcode。
  2. 确保安装了命令行(gcc,make等)工具。在Xcode应用程序中,转到“首选项”->“下载”并安装它们。
  3. 下载适合您的OS版本的MacPorts安装程序
  4. 安装它。
  5. 打开您选择的终端。
  6. 运行命令port -qv installed > myports.txt。这将获取所有已安装端口的副本。
  7. 卸载所有端口: sudo port -f uninstall installed
  8. 整理游戏区: sudo port clean all
  9. 浏览该文件,myports.txt然后重新安装实际需要的软件包。

实际上,我通过编辑myports.txt文件来加快重新安装过程,以使该文件包含我想要的软件包的名称(并且仅包含名称),每行一个软件包,然后运行以下命令

cat myports.txt | xargs -n1 port install

这是通过该文件并port install line为文件中的每一行执行命令的。这是对猫的无用用法,但是在乎它的人更容易阅读。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.