如何在OSX上安装Ruby on Rails 3?

我有一台白色Macbook,我必须在10个小时内参加一个会议,但我遇到了很多问题。

首先,我想要Rails 3,所以我使用MacPorts来安装Ruby 1.8.7。 它工作得很好;)然后我想我应该安装Rails 3,但不,不! 它说:

$ sudo gem install rails --pre ERROR: Error installing rails: activesupport requires Ruby version >= 1.8.7. 

我该怎么办? 我已经有1.8.7!

首先,您需要安装RVM,然后安装最新版本的Ruby。 接下来,您将设置该版本的Ruby作为默认值。 最后,您将安装Rails b3。

安装RVM( http://rvm.beginrescueend.com/rvm/install/ ):

 bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head ) 

安装最新的Ruby( http://rvm.beginrescueend.com/rubies/installing/ ):

 rvm install ruby-head 

您可以检查现在安装的版本:

 rvm list 

将最新版本的Ruby设置为默认值(用所需版本替换'ruby-1.9.2-head'):

 rvm ruby-1.9.2-head --default 

确保事情是最新的,然后安装Rails beta:

 gem update --system gem install rails --pre 

在安装Rails之前,您可能必须安装一些gem依赖项。

要在osx机器上轻松设置Rails 3,你唯一需要做的就是遵循这个辉煌的(一如既往)Railscast , 这里是为了转录

您还可以查看注释以检查问题并最终解决方案。

您可能安装了两个不同版本的Ruby。 试试“gem env”或“sudo gem env”,看看你说的Ruby版本。

如果已安装两个,请删除旧版本。 如果所有其他方法都失败了,请升级到1.9.x,我相信无论如何都建议使用Rails 3。

我强烈建议使用RVM(Ruby版本管理器)将Rails 3与Rails 2分开。(Rails 2与Rails 3冲突的一个例子:当你转到命令行生成Rails应用程序时,它会生成一个Rails 2应用程序或Rails 3应用程序?RVM允许您将它们分开。)

此外,最新的Ruby 1.8.7可能不适用于Rails 3,所以你必须使用更早的补丁级别(248适用于我)。 详细信息如下: http : //techiferous.com/2010/02/installing-rails-3-beta-with-rvm-and-ruby-1-8-7/

您应该使用rvm因为其他人已经说过要管理Ruby和Ruby gem的多个安装。 (如果你这样做,请rvm仔细阅读rvm的文档 。)

但是,你也应该很清楚你的shell看到的Ruby的版本是什么,以及为什么。 听起来像你的$PATH变量可能没有正确更新。 $PATH变量决定了哪个 Ruby解释器或gem命令是第一个看到的,如果你安装了多个(正如你现在所做的那样)。 默认情况下,MacPorts会在/opt/local/bin安装新的二进制文件,它也应该改变你的$PATH以便/opt/local/bin/usr/bin之前(这是Apple的Ruby开箱即用的地方)。

我怀疑当你做了sudo gem install ,你使用的是/usr/bin/gem (这是/usr/bin/ruby的gem安装程序而不是/opt/local/bin/gem (这将是MacPort的安装程序)ruby)。

检查echo $PATH的输出, which rubywhich gem看看发生了什么。

你应该确实使用rvm ,但是没有人向你解释如何在没有rvm的情况下做到这一点 ,你走了:

 sudo gem install tzinfo builder memcache-client rack rack-test rack-mount \ abstract erubis activesupport mime-types mail text-hyphen text-format \ thor i18n rake bundler arel railties rails --prerelease --force 

根据您的问题和您对某些答案的回答,听起来您没有使用MacPorts版本的Ruby。 在/usr/bin之前,您应该确保/opt/local/bin位于$PATH的前面。 此外,您应该通过MacPorts安装RubyGems( sudo port install rb-rubygems )并确保您使用的是MacPorts gem 。 然后使用MacPorts gem安装Rails。