индекс источник не определен метод `для самоцвета:модуль (NoMethodError)


Я запускаю приложение Rails 2.3.5 и при запуске скрипта / сервера мне показывают следующее:

./script/../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path': undefined method `source_index' for Gem:Module (NoMethodError)
    from ./script/../config/boot.rb:60:in `load_initializer'
    from ./script/../config/boot.rb:44:in `run'
    from ./script/../config/boot.rb:17:in `boot!'
    from ./script/../config/boot.rb:123
    from script/server:2:in `require'
    from script/server:2

Если я закомментирую строку 60 в boot.РБ (рельсы:: Гемзависимость.add_frozen_gem_path) и запускаем скрипт / сервер, я получаю следующее:

=> Booting WEBrick
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
./script/../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path': undefined method `source_index' for Gem:Module (NoMethodError)
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:298:in `add_gem_load_paths'
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:132:in `process'
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `send'
    from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `run'
    from /home/developer/bigpink/config/environment.rb:13
    from /home/developer/bigpink/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
    from /home/developer/bigpink/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
    from /home/developer/bigpink/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /home/developer/bigpink/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
    from /home/developer/bigpink/vendor/rails/railties/lib/commands/server.rb:84
    from script/server:3:in `require'
    from script/server:3

Итак, не совсем уверен, что делать. Надеюсь, мне быстро помогут. Спасибо!

3 132

3 ответа:

Я сам столкнулся с этой проблемой, когда пытался обновить старое приложение Rails с REE 1.8.7 до 1.9.3-p385. Как ни странно, Ruby 1.9.3-p327 работает просто отлично. Что это сводится к Рубин-1.9.3-p385 установленных библиотек RubyGems версии 2.0.2 для меня, и 1.9.3-p327 и библиотек RubyGems версии v1.8.23 установлен.

Gem.source_index некоторое время он был устаревшим, но поскольку Rails 2.3 не получает никаких обновлений, кроме критических исправлений безопасности, это никогда не будет исправлено. RubyGems v2. 0, наконец, удалил этот метод. Понизьте рейтинг до любой версии rubygems до 2.0.0, например 1.8.25, чтобы вернуть функциональность на данный момент. Вы можете получить совместимую версию, используя gem update --system 1.8.25.

В качестве очень важного отступления, Rails 2.3.5 необходимо обновить до минимума 2.3.17. Есть критические уязвимости в системе безопасности, которые открывают вас для некоторых очень неприятных атак. В долгосрочной перспективе, обновление до 3.x нужно считать очень сильной потребностью.

Для пользователей rvm,

rvm install rubygems 1.8.2 --force

Это помогло мне: http://djellemah.com/blog/2013/02/27/rails-23-with-ruby-20/

Я сделал это в сочетании с gem update --system 1.8.25, что может быть не нужно для вашего случая.