Как установить Ruby on Rails 3 на OSX?

У меня есть White 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!

Ответы

Ответ 1

Сначала вам нужно установить 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

Возможно, вам придется установить некоторые зависимости от gem до того, как Rails установит.

Ответ 3

Возможно, у вас есть две разные версии Ruby. Попробуйте "gem env" или "sudo gem env" и посмотрите, какая версия Ruby говорит, что у вас есть.

Удалите старый, если у вас есть два установленных. Если все остальное не удается, обновите до 1.9.x, я считаю, что это рекомендуется для Rails 3 в любом случае.

Ответ 4

Я настоятельно рекомендую использовать RVM (Ruby Version Manager), чтобы ваши 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/

Ответ 5

Вы должны использовать rvm, как говорили другие, для управления несколькими установками камней Ruby и Ruby. (Если вы пойдете так, найдите время, чтобы внимательно прочитать rvm documentation.)

Тем не менее, вам также должно быть удобно узнать, какую версию Ruby ваша оболочка видит по умолчанию и почему. Мне кажется, что ваша переменная $PATH может быть неправильно обновлена. Переменная $PATH - это то, что определяет, какой интерпретатор Ruby или команда gem является первой, если у вас установлено более одного (как вы сейчас это делаете). MacPorts по умолчанию установит новые двоичные файлы в /opt/local/bin, и он также должен изменить ваш $PATH, чтобы /opt/local/bin предшествовал /usr/bin (где Apple из коробки Ruby живет).

Я подозреваю, что когда вы делали sudo gem install, вы использовали /usr/bin/gem (который является установщиком gem для /usr/bin/ruby, а не /opt/local/bin/gem (который будет установщиком для MacPort Ruby).

Проверьте вывод echo $PATH, which ruby и which gem, чтобы узнать, что происходит.

Ответ 6

Основываясь на вашем вопросе и ответах на некоторые из ответов, похоже, что вы не используете версию Ruby для MacPorts. Вы должны убедиться, что /opt/local/bin находится перед вашим $PATH, перед /usr/bin. Кроме того, вы должны установить RubyGems через MacPorts (sudo port install rb-rubygems) и убедиться, что вы используете MacPorts gem. Затем установите Rails с помощью MacPorts gem.

Ответ 7

Вы действительно должны использовать 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