Я получил Белый MacBook, и я должен перейти к конференции через 10 часов, но у меня есть много проблем.
Во-первых, я хотел иметь направляющие 3, таким образом, я использовал MacPorts для установки Ruby 1.8.7. Это работало хорошо ;) Затем я думал, что должен установить направляющие 3, но не, нет! Это говорит:
$ sudo gem install rails --pre ERROR: Error installing rails: activesupport requires Ruby version >= 1.8.7.
Что мне делать? Я уже имею 1.8.7!
У вас могут быть установлены две разные версии Ruby. Попробуйте "gem env" или "sudo gem env" и посмотрите, какая версия Ruby у вас указана.
Удалите старую, если у вас две установлены. Если ничего не помогает, обновитесь до 1.9.x, я считаю, что в любом случае это рекомендуется для Rails 3.
Я настоятельно рекомендую использовать RVM (Ruby Version Manager), чтобы держать Rails 3 отдельно от Rails 2. (Один пример конфликта Rails 2 с Rails 3: когда вы переходите в командную строку будет ли оно генерировать приложение 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 по умолчанию. Наконец, вы установите 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
Возможно, вам придется установить некоторые зависимости gem перед установкой Rails.
Вы должны использовать rvm
, как говорили другие, для управления несколькими установками гемов Ruby и Ruby. (Если вы пойдете по этому пути, уделите время и внимательно прочтите документацию rvm
.)
Однако вам также следует научиться выяснять, какую версию Ruby ваша оболочка видит в качестве по умолчанию и почему. Мне кажется, что ваша переменная $ PATH
не может быть обновлена должным образом. Переменная $ PATH
- это то, что определяет , какой интерпретатор Ruby или gem
команда будет отображаться первой, если у вас установлено более одной (как сейчас). MacPorts установит новые двоичные файлы в / opt / local / bin
по умолчанию, и он также должен изменить ваш $ PATH
так, чтобы / opt / local / bin
предшествовал / usr / bin
(это место, где живет нестандартная Ruby от Apple).
Я подозреваю, что когда вы выполняли sudo gem install
, вы использовали / usr / bin / gem
(который является установщиком гемов для / usr / bin / ruby
, а не / opt / local / bin / gem
(который будет установщиком для Ruby MacPort).
Проверьте вывод echo $ PATH
, какой рубин
и какой драгоценный камень
, чтобы узнать, что происходит.
Вы действительно должны использовать 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
Судя по вашему вопросу и вашим ответам на некоторые из ответов, похоже, что вы не используете версию Ruby для MacPorts. Убедитесь, что / opt / local / bin
находится перед вашим $ PATH
, перед / usr / bin
. Кроме того, вам следует установить RubyGems через MacPorts ( sudo port install rb-rubygems
) и убедиться, что вы используете гем MacPorts
. Затем установите Rails, используя гем MacPorts
.
Чтобы легко установить Rails 3 на машине osx, единственное, что вам нужно сделать, это следовать этому блестящему (как всегда) Railscast , здесь для транскрипции
Вы также можете просмотреть комментарии, чтобы проверить наличие проблем и, в конечном итоге, решения.