2010-10-15 153 views
3

我在MacBook Pro中安装了MacPorts和Snow Leopard。我没有明确安装perl那里,但我想它要么安装了默认的macports安装,要么通过我安装的任何其他端口安装为依赖项。如何升级我的MacPorts Perl安装?

我想用最新的稳定Perl版本升级那里的Perl v5.8.9。无论它现在是什么(我看它是5.12.2)。所以,我的问题是,我该如何用macports中的新功能完全替换旧的Perl。

sudo port upgrade perl5工作还是我还需要做别的事情。我只是想确保这是正确的命令,以避免搞砸我的macports安装。

+0

Perl是易于编译和安装没有的MacPorts。你可以亲自尝试一下,看看自己。 :) – 2010-10-15 17:55:15

+0

是啊我有点知道,我可以安装新的Perl没有MacPorts,但这是除了点。我通常保留Apple的默认Perl安装,并在MacPorts安装中尝试新版本。我只是想找到正确的方法来做到这一点在MacPorts :)。 – sfactor 2010-10-15 22:22:10

回答

5

port upgrade packagename是正确的形式,是的。

但我认为在这种情况下,这比这更复杂一些。

看看perl5 portfile。这是一个简单依赖于perl 5.8的包装器。如果你只是sudo port upgrade perl5,它不会让你到5.12。然而,perl5包有5.10和5.12的几个变体。您应该能够在本地查看所有这些信息,其中包括port variants perl5

我不知道的也就是你是否能够(在这种情况下+perl5_12)通过变异标记以port upgrade,或是否需要在当前安装的顶部做一个新的port install。甚至,恐怖的恐怖,在安装变体之前卸载当前包。恕我直言,整个变体机制是一个错误。一个有趣而有价值的实验,但是我们从中学到了一个不好的主意。

编辑:我认为你可以添加一个变种到已安装的端口;看来你不得不说:

sudo port deactivate perl5 
sudo port install perl5 +perl5_12 
4

你需要安装perl5.12之前卸载perl5.8

sudo port deactivate perl5.8 
sudo port uninstall perl5.8 
sudo port install perl5 +perl5_12 

注:如果卸载perl5.8失败,则可能通过

sudo port uninstall -f perl5.8 
强制卸载

警告:This might break oth呃软件包的依赖关系。

但到目前为止,它做的工作为perl(对我来说):

% perl -v 

This is perl 5, version 12, subversion 2 (v5.12.2) built for darwin-multi-2level