MacPorts如何安装软件包? 如何通过MacPorts激活Ruby安装?

尝试使用以下命令行在我的机器(PPC,Mac OSX 10.5.7)上安装ruby19

sudo port install ruby19 

ruby的版本没有改变

 ruby -v => ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] 

我假设我的Mac上安装了两个版本,但我现在如何使用最新版本?

要安装两个版本,要使用特定的ruby版本,您可以指定所需版本的绝对路径。 例如/ your / path / to / ruby​​或者您可以在.profile中更改PATH设置

你可以输入

 which ruby 

查看当前使用的ruby可执行文件的路径。

运用

 echo $PATH 

您可以看到当前的PATH设置。 您必须将新ruby二进制文件的路径添加到PATH,以便在另一个之前找到它。

正如ayaz已经提到的,你的macports的默认位置在/ opt / local。 如果你在你的路径前添加/ opt / local / bin应该没问题。 (确保在更改后启动新的终端窗口 – 除非您明确地’再次”获取.profile文件,否则它们将不会在您当前的会话中被选中)

需要注意的一点是:在将/ opt / local / bin添加到路径之后,shell 总是更喜欢二进制文件到稍后找到的二进制文件,如果你依赖于/ bin,/ sbin或/ usr /中的特定版本,这可能是一个问题sbin – 根据您的情况,这意味着您不应该这样做(如果您的计算机正在处理敏感数据和/或银行或其他东西)或只是必须记住它可能是一个问题(如果您的计算机是正常的开发机器)。

如果您需要更多关于如何在osx上设置PATH的提示,请参阅http://www.tech-recipes.com/rx/2621/os_x_change_path_environment_variable/ 。

默认情况下,MacPorts中的Ruby 1.9端口在/opt/local/bin/ruby1.9安装Ruby二进制/opt/local/bin/ruby1.9 。 它附加了1.9以避免踩踏Ruby 1.8.7库和gem,因为并非所有gem都与1.9兼容。 所以你必须使用ruby1.9 (以及irb1.9等)启动Ruby 1.9

如果您不想这样做,您有两种选择:

  1. 别名ruby到你的shell配置文件中的ruby1.9
  2. 使用+nosuffix变体安装Ruby 1.9端口。 但是,请注意,如果您通过MacPorts安装了Ruby 1.8,则通过MacPorts安装Ruby 1.9而不使用1.9后缀可能会导致冲突(使用gem等)。

只需快速澄清一下MacPorts 。 Ayaz是对的,默认情况下,MacPorts会在/ opt / local中安装东西。 (这使得以后可以轻松地进行全局卸载,如果需要,它可以使MacPorts软件包远离OS X软件包。)

当您安装MacPorts时,它通常会通过更新用户的.profile (创建它,如果它尚不存在)来为您编辑$PATH (以及您的$MANPATH )。

作为预防措施,安装程序将创建原始.profile的备份,以防您想要回滚更改(或者如果您以后完全卸载MacPorts)。 这是一个来自随机机器的例子。

 admin~ $ ls .profile *
 .profile .profile.macports-saved_2009-08-03_at_14:55:56

如果你查看.profile,你应该看到这样的东西:

 ##
 #您之前的/Users/admin/.profile文件已备份为/Users/admin/.profile.macports-saved_2009-08-03_at_14:55:56
 ##

 #McPorts Installer add on 2009-08-03_at_14:55:56:添加适当的PATH变量以与MacPorts一起使用。
 export PATH = / opt / local / bin:/ opt / local / sbin:$ PATH
 #完成调整PATH环境变量以与MacPorts一起使用。

 #McPorts Installer add on 2009-08-03_at_14:55:56:添加适当的MANPATH变量以用于MacPorts。
 export MANPATH = / opt / local / share / man:$ MANPATH
 #完成调整您的MANPATH环境变量以与MacPorts一起使用。

如果您的$ PATH尚未更新,则应进行调整,否则,您将无法使用port工具和通过MacPorts安装的软件。

我倾向于认为macports通常会将所有内容保存在/opt/local目录中。 我正在使用Leopard,我将它放在该目录中。 你可能想查看那里,特别是在/opt/local/bin ,找到你正在寻找的ruby二进制文件。