4

After trying to install ruby19 on my machine (PPC, Mac OSX 10.5.7) using the following commandline

sudo port install ruby19

the version of ruby didn't change

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

I assume that i have two versions of it installed on my mac, but how do i use the latest one now?

4

4 回答 4

9

默认情况下,MacPorts 中的 Ruby 1.9 端口将 Ruby 二进制文件安装在/opt/local/bin/ruby1.9. 它附加了 a1.9以避免对 Ruby 1.8.7 库和 gem 造成影响,因为并非所有 gem 都与 1.9 兼容。因此,您必须使用ruby1.9(andirb1.9等)启动 Ruby 1.9

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

  1. ruby您的 shell 配置文件中的别名ruby1.9
  2. 使用变体安装 Ruby 1.9 端口+nosuffix。但是请注意,如果您通过 MacPorts 安装了 Ruby 1.8,则通过 MacPorts 安装 Ruby 1.9 而没有1.9后缀可能会导致冲突(与 gems 等)。
于 2009-11-12T19:38:29.307 回答
5

如果您安装了两个版本,要使用特定的 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/ 。

于 2009-08-26T10:31:43.700 回答
2

只是快速澄清一下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,您应该会看到如下内容:

##
# Your previous /Users/admin/.profile file was backed up as /Users/admin/.profile.macports-saved_2009-08-03_at_14:55:56
##

# MacPorts Installer addition on 2009-08-03_at_14:55:56: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.

# MacPorts Installer addition on 2009-08-03_at_14:55:56: adding an appropriate MANPATH variable for use with MacPorts.
export MANPATH=/opt/local/share/man:$MANPATH
# Finished adapting your MANPATH environment variable for use with MacPorts.

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

于 2009-08-26T23:33:02.950 回答
1

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

于 2009-08-26T10:00:50.313 回答