Пакет говорит, что драгоценный камень отсутствует - но это не так?

Фон

Я поддерживаю содержимое сайта Ruby On Rails, но у меня действительно нет опыта работы с Rails.

При попытке запустить сервер Rails: rails s Я получаю следующее:

Не удалось найти activesupport-3.2.0 ни в одном из источников

Запустите bundle install, чтобы установить недостающие драгоценные камни

Я запускаю установку пакета

Gem :: InstallError: factory_girl требует версии Ruby> = 1.9.2. Произошла ошибка при установке factory_girl (3.2.0), и Bundler не может продолжить работу.

Перед объединением убедитесь, что gem install factory_girl -v '3.2.0' успешно.

Хорошо, я устанавливаю factory_girl по инструкции:

Успешно установлен factory_girl-3.2.0 Установлен 1 гем

Снова запустите установку пакета:

Gem :: InstallError: factory_girl требует версии Ruby> = 1.9.2. Произошла ошибка при установке factory_girl (3.2.0), и Bundler не может продолжить работу. Перед объединением убедитесь, что gem install factory_girl -v '3.2.0' успешно.

Есть ли у вас какие-либо идеи?

Информация

Вчера у меня возникла ошибка поперечного протектора при попытке запустить rails server. Итак, в соответствии с этим советом SO, я советую, что я отключил RVM и установил rbenv и упаковщик вместо RVM.

Я пробовал как с Ruby 1.9.3-p125, так и с 1.9.3-rc1

Выходные данные gem list показывают factory_girl как установленную.

  • ...
  • фабрика_девушка (3.2.0)
  • ...

Вывод gem environment показывает, что проблема может иметь какое-то отношение к установке ruby ​​1.9.1?

Среда RubyGems:
- ВЕРСИЯ RUBYGEMS: 1.8.10
- ВЕРСИЯ RUBY: 1.9.3 (2011-09-23 patchlevel -1) [x86_64-darwin11.3.0]
- КАТАЛОГ УСТАНОВКИ: / Users / andreas / .rbenv / versions / 1.9.3-rc1 / lib / ruby ​​/ gems / 1.9.1
- РУБИН ИСПОЛНИТЕЛЬНЫЙ: /Users/andreas/.rbenv/versions/1.9.3-rc1/bin/ruby
- ИСПОЛНИТЕЛЬНЫЙ КАТАЛОГ: /Users/andreas/.rbenv/versions/1.9.3-rc1/bin
- ПЛАТФОРМЫ RUBYGEMS:
- ruby ​​
- x86_64-darwin-11
- ПУТИ GEM:
- /Users/andreas/.rbenv/versions/1.9.3-rc1/lib/ruby/gems/1.9.1
- /Users/andreas/.gem/ruby/1.9.1
- КОНФИГУРАЦИЯ GEM:
-: update_sources => true
-: verbose => true
-: benchmark => false
-: backtrace => false
-: bulk_threshold => 1000
- "gem" => "--no-ri --no-rdoc"
- УДАЛЕННЫЕ ИСТОЧНИКИ:
- http://rubygems.org/


person Andreas    schedule 02.05.2012    source источник
comment
Какую версию Ruby вы получаете при входе в терминал: ruby ​​-v   -  person Hoetmaaiers    schedule 02.05.2012
comment
Думаю, у тебя рубин 1.9.1 .... = ›/Users/andreas/.gem/ruby/1.9.1   -  person shuriu    schedule 02.05.2012
comment
@RobinH Я получаю: ruby ​​1.9.3dev (23.09.2011, редакция 33323) [x86_64-darwin11.3.0]   -  person Andreas    schedule 02.05.2012
comment
@shuriu - я так не думаю - см. выше ...   -  person Andreas    schedule 02.05.2012
comment
можно просто удалить: - /Users/andreas/.gem/ruby/1.9.1?   -  person Andreas    schedule 02.05.2012
comment
Действительно запутались: ls /Users/andreas/.gem/ruby выводит директорию 1.8 - не видно 1.9.1?   -  person Andreas    schedule 02.05.2012
comment
@jdoe вы имеете в виду конкретные проекты Gemfile.lock? Когда я удаляю его и запускаю bundle check, я получаю ту же песню неудовлетворенных зависимостей. Меня просят сделать bundle install. Что я делаю и ТАДААА - нет проблем ... Пожалуйста, объясните вам магию и позвольте мне дать вам немного кармы.   -  person Andreas    schedule 02.05.2012
comment
@BenMiller Спасибо, но, похоже, проблема была Gemfile.lock.   -  person Andreas    schedule 02.05.2012
comment
попробуйте не rails s, а bundle exec rails s   -  person Jakub Oboza    schedule 02.05.2012
comment
@shuriu Этот 1.9.1 на самом деле не соответствует версии Ruby - см. stackoverflow.com/questions/8564210/   -  person Gareth    schedule 02.05.2012
comment
@jdoe, пожалуйста, приходите и набирайте очки кармы, подтвердив свой комментарий в качестве ответчика. Я отмечу его как принятый. Спасибо еще раз.   -  person Andreas    schedule 06.05.2012


Ответы (5)


Попробуйте переустановить все драгоценные камни с помощью следующей команды:

bundle install --redownload
person Min San    schedule 28.08.2018

@jdoe ответил в комментариях. И это сработало. Видимо нужно было удалить Gemfile.lock.

Я не знаю, почему и как. Я просто публикую это здесь, пока @jdoe не появится и не соберет свои баллы с реальным ответом.

person Andreas    schedule 02.05.2012
comment
Удаление файла блокировки означает неявное обновление всех драгоценных камней до последних версий, чего вы, возможно, не захотите. - person Iulian Onofrei; 20.04.2021

Вы пробовали это?

bundle exec rails s
person Jakub Oboza    schedule 02.05.2012

Перво-наперво - у меня нет опыта работы с rbenv.

Одна из приятных вещей в RVM заключается в том, что он помогает достаточно четко определить, какие части вашей среды Ruby являются движущимися.

rvm list предоставит вам список Rubies rvm gemset list предоставит вам список гемсетов (это не обязательно при использовании сборщика)

А теперь несколько хитрых вещей:

  • Gemfile используется Bundler, чтобы определить, что установить
  • Если ничего не указано, Bundler попытается установить последнюю версию гема.
  • If the latest version of a gem is not compatible with your current Ruby, then ...
    • You can change version of Ruby (rvm install 1.9.3 for instance)
    • You can tell the Gemfile to specify which version of the gem you want, with varying degrees of strictness.
      • Can you tell I like indenting bullet points?
      • gem "vcr", "~> 1.11.3" # => это будет означать, что вы предпочитаете 1.11.3, но все, что находится в диапазоне 1.11, приемлемо
      • gem 'factory_girl', '3.2.0' # => это говорит, что нужно установить только версию factory_girl 3.2.0, больше ничего

Кроме того, прежде чем что-либо еще, вы должны запустить проверку пакета, чтобы узнать, что сборщик должен сказать о ваших драгоценных камнях.

person Trevoke    schedule 02.05.2012

Убедитесь, что все драгоценные камни, которые вы устанавливаете, находятся в Gemfile, потому что, если гем не добавлен в Gemfile, даже если вы установили его вручную, ваше приложение Rails не получит его.

Образец Gemfile будет

gem 'rails', '3.0.0'

gem 'mysql2', '< 0.3'
gem 'rails3-jquery-autocomplete'

#authorization
gem 'authlogic'
gem 'hoptoad_notifier'

#reporting
gem 'lazy_high_charts'

group :test do
  gem 'rspec', '2.0.0'
  gem 'rspec-rails', '2.0 '
  gem "test-unit"
end
person sameera207    schedule 02.05.2012