如何升级MacPorts Perl安装?

时间:2010-10-15 13:11:28

标签: perl applet osx-snow-leopard macports

我已经在我的MacBook Pro中使用Snow Leopard安装了MacPorts。我没有在那里明确安装perl,但我想它要么安装了默认的macports安装,要么安装为我安装的任何其他端口的依赖项。

我想用最新的稳定Perl版本升级Perl v5.8.9。无论它目前是哪一个(我看它是5.12.2)。所以,我的问题是如何使用新的macport完全替换旧的Perl。

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

3 个答案:

答案 0 :(得分: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 你当前的安装。甚至,恐怖的恐怖,在安装变体之前卸载当前的包。

整个变种机制是一个错误,恕我直言。这是一个有趣且有价值的实验,但我们从中学到了这个实验是一个坏主意。

编辑:我认为您可以为已安装的端口添加变体;你似乎不得不说:

{{1}}

答案 1 :(得分:4)

在安装perl5.8之前,您需要先卸载perl5.12

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

注意:如果卸载perl5.8失败,您可以通过

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

警告:此可能会破坏其他软件包的依赖关系。

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

% perl -v

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

答案 2 :(得分:0)

我从Perl 5.26迁移到5.28时是这样做的:

  • myStoreDataFormula: { bind:{ bindTo:'{employeeDetails.selection}', deep:true }, get: function(employee){ if(employee!=null){ var empArray = []; empArray.push(employee.data); return empArray; } } } 添加$ sudo vi /opt/local/etc/macports/variants.conf(允许使用emacs:-)
  • +perl5_28升级perl,git等,使其位于新版本的顶部
  • $ port depend perl5.26 | awk '!/p5.26/ { print $1 }' | xargs sudo port install消除了Perl 5.26。