Проблемы с запуском Rails на Mac OSX Snow Leopard - PullRequest
2 голосов
/ 14 апреля 2011

Обновление и решение

Я наконец все заработал после
1. Удаление всего связанного с ruby ​​в / usr / local / ..., а также удаление всех версий rails.
2. Установка RVM от имени обычного пользователя -> т.е. установленного в моем домашнем каталоге, а НЕ в / usr / local от имени root
3. rvm установить 1.8.7 и установить по умолчанию

Теперь все работает нормально.

Мой вывод после нескольких дней поиска в Google и чтения решений других пользователей заключается в том, что Snow Leopard просто не справляется со средой rails dev, если вы не включите ее в RVM в локальном директоре. Я отказался от перехода на RVM, потому что мне не нужно управлять несколькими версиями ruby.

Некоторые ответы ниже, а также мои выдержки из кода на pastie могут дать некоторые полезные советы для других, пытающихся устранить неполадки. В частности, от @ fl00r и @Kelvin:
запустите which -a для gem, bundle, rails, rake и т. д., чтобы увидеть доступные версии. Проверьте, какие версии ruby ​​вызываются с head -1 на каждой.

Оригинал ниже

В конце концов, после нескольких дней поиска, удаления и переустановки Google. Я пытаюсь запустить рельсы на Mac OS X 10.6.7. Я следовал Пост Hivelogic на эту тему . Извинитесь за длину этого вопроса.

Кто-нибудь следовал пошаговой процедуре удаления / переустановки для получения этой работы? Или ссылка на совет по устранению неполадок? Должен ли я очистить все, следуя этому совету от Чеда Вули , и перейти на RVM?

Общей темой были ошибки, связанные с невозможностью найти драгоценные камни, даже если они установлены. Например, при попытке создать новое приложение rails:

kevindewalt@new-host-4:~/Documents$ $ rails new blog
You don't have i18n installed in your application. Please add it to your Gemfile and run bundle install

Или существующее приложение, которое я запустил на другом компьютере после установки пакета:

kevindewalt@new-host-4:~/Documents/ClaimAway$ (master) $ rake db:setup
(in /Users/kevindewalt/Documents/ClaimAway)
Could not find i18n-0.4.2 in any of the sources
Try running `bundle install`.
kevindewalt@new-host-4:~/Documents/ClaimAway$ (master) $ rails s
/usr/local/lib/ruby/gems/1.8/gems/actionpack-3.0.0/lib/action_dispatch.rb:35:in `require': no such file to load --

-

kevindewalt@new-host-4:~/Documents$ $ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.7.2
  - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.7.0]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-10
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/1.8
     - /Users/kevindewalt/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

-

kevindewalt@new-host-4:~/Documents$ $ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/usr/local/git/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

-

kevindewalt@new-host-4:~/Documents$ $ which -a ruby
/usr/local/bin/ruby
/usr/local/bin/ruby
/usr/bin/ruby
/usr/local/bin/ruby

Ответы [ 4 ]

2 голосов
/ 14 апреля 2011

добавить к Gemfile

gem 'i18n'

На самом деле вы должны также указать точную версию:

gem 'i18n', '0.4.2'

, затем запустить bundle install.Но пока ваш i18n драгоценный камень будет заблокирован, попробуйте следующее:

bundle update i18n

Это все, что написано в вашей ошибке.

1 голос
/ 14 апреля 2011

rvm - это, пожалуй, лучший выбор для предотвращения подобных проблем.Но это может быть излишним, если вам на самом деле не нужны несколько версий ruby ​​или наборов гемов.

Позвольте мне попытаться диагностировать проблему.Если мы сможем решить эту проблему, то вам не придется прыгать через обручи rvm (если, конечно, вы этого не хотите).

Я подозреваю, что при запуске некоторых из этих скриптов на основе ruby, таких как 'gem', 'bundle', 'rails' и 'rake' строка этих сценариев указывает на установку ruby, которую вы не ожидали.

Вот мой обычный контрольный список диагностики проблем с драгоценными камнями, подобных этой.

  1. Запустите команду "which -a gem".Вы видите несколько уникальных локаций?Если это так, список драгоценных камней, используя полный путь к драгоценному камню.Например, "/ usr / bin / gem list" и "/ usr / local / bin / gem list".Я предполагаю, что вы увидите, что в одном из списков есть i18n, а в другом нет.
  2. Запустите «which» на rails, bundler и gem.Запустите «голову -1» на каждом из этих путей.Совпадает ли путь ruby ​​во всех них?

Я предполагаю, что "rails" в вашем PATH не использует тот же рубин, что и "gem" в вашем PATH.Возможно, вы установили его с помощью предварительно установленной команды 'gem', поэтому она указывает на каталог gem системного рубина, а не на / usr / local.Попробуйте переустановить рельсы, затем закройте и снова откройте свой терминал.Затем используйте «which» и «head -1» выше, чтобы убедиться, что «rails» использует тот же рубин, что и «gem».

Еще одним подозреваемым является команда «sudo».Вы также можете запустить команду «which» через sudo, например, sudo sh -c 'which gem'.Возможно, что в sudo запущен один из предустановленных сценариев.Если вы сомневаетесь, вы можете запустить: "sudo / usr / local / bin / gem install rails", чтобы вы точно знали, какую команду gem вы используете.

0 голосов
/ 15 апреля 2011

См. Этот вопрос стека для пошаговых инструкций по установке направляющих с помощью rvm.Это самый проверенный и верный метод, который я нашел:

Удаление Ruby on Rails в Mac OS X 10.6

0 голосов
/ 14 апреля 2011

Я бы сделал пару вещей.

Начните с удаления Rails> = 3 из вашей текущей установки системного гема.Это включает в себя все зависимости Rails.Теперь вы сможете загружать

Затем установите rvm и используйте rvm для установки Ruby 1.9.2 и Rails3.Используйте 1.9.2 rvm для работы с вашими Rails3 проектами.Часть рельсов3 и рельсов2 не очень хорошо работают вместе, поэтому вы всегда должны пытаться разделить их imho.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...