尝试使用以下命令行在我的机器(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上安装了两个版本,但我现在如何使用最新版本?
答案 0 :(得分:9)
默认情况下,MacPorts中的Ruby 1.9端口在/opt/local/bin/ruby1.9
中安装Ruby二进制文件。它附加了1.9
以避免踩踏Ruby 1.8.7库和宝石,因为并非所有宝石都与1.9兼容。因此,您必须使用ruby1.9
(以及irb1.9
等)启动Ruby 1.9。
如果您不想这样做,您有两种选择:
ruby
到ruby1.9
别名。+nosuffix
变体安装Ruby 1.9端口。但是,请注意,如果您通过MacPorts安装了Ruby 1.8,则通过MacPorts安装Ruby 1.9而不带1.9
后缀可能会导致冲突(使用宝石等)。答案 1 :(得分: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将总是更喜欢二进制文件到稍后找到的二进制文件,如果您依赖于特定版本,这可能是一个问题in / bin,/ sbin或/ usr / sbin - 根据您的情况,这意味着您不应该这样做(如果您的计算机正在处理敏感数据和/或银行或其他东西)或只是要记住它可以是个问题(如果您的计算机是普通的开发机器)。
如果您需要更多关于如何在osx上设置PATH的提示,请参阅http://www.tech-recipes.com/rx/2621/os_x_change_path_environment_variable/。
答案 2 :(得分: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安装的软件。
答案 3 :(得分:1)
我倾向于认为macports
通常会将所有内容保存在/opt/local
目录中。我正在使用Leopard,我把它放在那个目录中。您可能希望查看/opt/local/bin
内部,以查找您要查找的ruby
二进制文件。