在 os x 上使 ruby​​ 1.9 默认 [重复]

Posted

技术标签:

【中文标题】在 os x 上使 ruby​​ 1.9 默认 [重复]【英文标题】:making ruby 1.9 default on os x [duplicate] 【发布时间】:2011-03-30 05:11:18 【问题描述】:

如何使 ruby​​ 1.9 成为默认使用的版本,而不是默认安装在 os x 上的 1.8.x?

谢谢。

【问题讨论】:

【参考方案1】:

从 v2.1.3 开始,将包的特定版本设置为默认值的“正确”MacPorts 方法是使用 select 命令,如下所示:

sudo port select --set ruby ruby19

the MacPorts Guide 中似乎没有任何关于此命令的文档。但是,您可以运行 port help select 以获得非常有限的描述。此功能取代了设置默认版本的+nosuffix“变体”样式。

【讨论】:

【参考方案2】:

我建议从http://rvm.beginrescueend.com/ 安装 RVM 工具(在installing it 上有说明

它允许您拥有多个版本的 ruby​​ 和 gems。安装 RVM 后,然后安装所需的 Ruby 1.9,使用:

rvm install ruby-1.9.1

将其设为默认值:

rvm --default ruby-1.9.1

在此之后,它将成为默认的 ruby​​。

【讨论】:

我会通过不包括补丁级别来避免过于具体,即:rvm --default 1.9.1【参考方案3】:

RVM 非常适合使用不同版本的 Ruby 和 gem 设置多个环境。

如果你只是想拥有 Ruby 1.9,你可以简单地使用 MacPort 安装它。它将优先于 OS X 上默认安装的那个。

    如果您还没有,请下载MacPort。它是 Mac 包管理器。 在终端上,使用 MacPort 安装 Ruby 1.9 和 RubyGemssudo port selfupdate sudo port install ruby19 sudo port install rb-rubygems

然后,您应该已经安装了 Ruby 1.9 并在路径上前进。做一个ruby -v 来检查。使用 Ruby gem 安装任何其他 Ruby 组件,例如 Rails。

端口安装在 /opt/local/bin 目录中,MacPort 更新 PATH 环境变量,以便在 /usr/bin 预安装包之前获取这些端口。

【讨论】:

是的,这也是一个很好的答案。我要说的唯一评论是,使用 RVM,您可以获得不同的宝石集。如果您尝试同时使用 Rails 2.x 和 Rails 3.0 工作,则需要不同的 gemset。另外,我遇​​到过一个版本的 Ruby 会破坏某些应用程序的问题(因为 ruby​​ 解释器中的错误)。 这种方法还有一个问题。 Ruby1.9(使用 macports 安装)称为“ruby1.9”。因此,如果您在终端中发出“ruby”,您仍然会在系统上安装 ruby​​ 1.8.7(因为 usr/local/bin 在路径中)。您可以在 usr/local/bin 中设置指向 ruby​​1.9 的符号链接。【参考方案4】:

您可以创建别名而不是符号链接...这样两个版本都保持不变。将以下行添加到用户主文件夹中的 .profile(如果不存在则创建):

alias ruby='/opt/local/bin/ruby1.9'

然后获取文件:

source .profile

希望有帮助:)

【讨论】:

【参考方案5】:

我会说跳过 rvm。

就我而言,MacPorts 确实将 /opt/local/bin 添加到我的路径中,但将 ruby​​ 1.9 安装为 ruby​​1.9。 (离开 ruby​​ -> /usr/bin/ruby。)

目前为止最简单的修复方法:

sudo su
cd /opt/local/bin
ln -s ruby1.9 ruby

噗。完成。

确切的命令:

nsmcs-macbook-pro:~ nsmc$ which ruby
/usr/bin/ruby
nsmcs-macbook-pro:~ nsmc$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
nsmcs-macbook-pro:~ nsmc$ which ruby1.9
/opt/local/bin/ruby1.9
nsmcs-macbook-pro:~ nsmc$ sudo su
Password:
sh-3.2# cd /opt/local/bin/
sh-3.2# ls -l ruby*
-rwxr-xr-x  2 root  admin  9040 Feb 16 07:43 ruby1.9
sh-3.2# ln -s ruby1.9 ruby
sh-3.2# which ruby
/opt/local/bin/ruby
sh-3.2# ruby --version
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10]

【讨论】:

我不得不使用 MacPort 的 gem1.9 使用相同的符号链接技巧来欺骗 gem 使用非框架版本的 Ruby。

以上是关于在 os x 上使 ruby​​ 1.9 默认 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 Ruby 1.9 上设置默认字符串编码吗?

如何使用 ruby​​ 1.9 转换字符编码

如何在Mac OS X上安装 Ruby运行环境

如何在Mac OS X上安装 Ruby运行环境

ruby 在Mac OS X上使用latexmk

ruby运行环境怎么在mac os x上安装