在 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 和 RubyGems
sudo 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 中设置指向 ruby1.9 的符号链接。【参考方案4】:您可以创建别名而不是符号链接...这样两个版本都保持不变。将以下行添加到用户主文件夹中的 .profile(如果不存在则创建):
alias ruby='/opt/local/bin/ruby1.9'
然后获取文件:
source .profile
希望有帮助:)
【讨论】:
【参考方案5】:我会说跳过 rvm。
就我而言,MacPorts 确实将 /opt/local/bin 添加到我的路径中,但将 ruby 1.9 安装为 ruby1.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 默认 [重复]的主要内容,如果未能解决你的问题,请参考以下文章