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

15
我有一台白色的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了!

哎呀,这是一个很大的Ruby/Rails 3问题。 - Matchu
如果您对RVM有进一步的问题,可以在freenode上的#rvm频道中随时找到愿意提供帮助的人:http://webchat.freenode.net/?channels=rvm。 - Konstantin Haase
1
@DJTripleThreat 白色笔记本电脑发热较少,因此软件运行更快。你永远不知道这是否与过热问题有关。 :) - user142019
1
他可能提到他的白色MacBook只是为了确保我们不会认为它是一款Pro,以防有所介意。(实际上并没有。) - Robert S.
7个回答

37

首先需要安装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测试版:

gem update --system
gem install rails --pre

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


似乎链接已过期。 - Akim Kelar

5

2

你确实应该使用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

Rails 3不再是预览版。 - xaxxon

2

你可能安装了两个不同版本的Ruby。尝试运行"gem env"或者"sudo gem env"命令,查看它显示的Ruby版本。

如果你安装了两个版本,删除旧版本即可。如果以上方法都失败了,建议升级到1.9.x版本,因为Rails 3推荐使用该版本。


它确实显示1.8.6。我该如何摆脱它? - Oluf Nielsen
我没有Mac,所以不是100%确定,但如果你进入它所安装的目录,应该会有一个卸载程序可以运行。 - Zachary Wright
3
他不应该卸载1.8.6 - 它是苹果内建系统的一部分,某些软件可能会期望它存在。他可以通过合理简单地使用'$PATH'变量来管理不同版本的Ruby。 - Telemachus
为了辩护自己,他问如何摆脱它,而不是是否应该这样做。XD这只是表明我对Mac的了解有多少。 - Zachary Wright

2
我强烈建议使用RVM(Ruby版本管理器)来区分Rails 2和Rails 3。(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/

2
正如其他人所说,您应该使用rvm来管理多个Ruby和Ruby gem安装。如果您选择这种方式,请花些时间仔细阅读rvm的文档
然而,您还应该熟悉如何确定您的shell看到的默认Ruby版本以及原因。我觉得您的$PATH变量可能没有正确更新。如果您安装了多个Ruby解释器或gem命令,则$PATH变量将决定首先看到哪个。MacPorts默认会将新二进制文件安装到/opt/local/bin中,并且它还应该更改您的$PATH,使/opt/local/bin位于/usr/bin之前(这是Apple预装的Ruby所在的位置)。
我怀疑当您执行sudo gem install时,您正在使用/usr/bin/gem(这是/usr/bin/ruby的gem安装程序,而不是MacPort的Ruby的安装程序/opt/local/bin/gem)。
请检查echo $PATHwhich rubywhich gem的输出以了解情况。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接