Разрешение беспорядка зависимости - PullRequest
0 голосов
/ 21 мая 2011

Попытка втиснуть в довольно новый драгоценный камень, и это заставляет меня спотыкаться об обновлении довольно многих других, включая Rails в целом, с 2.3.5 до 2.3.6.

Bundler отлично устанавливает.

Но когда я загружаюсь script/console, я получаю это:

Loading development environment (Rails 2.3.3)
/Users/macuser/Sites/hq_channel/config/../vendor/rails/railties/lib/initializer.rb:271:in `require_frameworks':RuntimeError: can't activate rack (~> 1.0.0, runtime), already activated rack-1.1.0. Make sure all dependencies are added to Gemfile.
/Library/Ruby/Gems/1.8/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:117:in `gem': can't activate rack (~> 1.0.0, runtime), already activated rack-1.1.0. Make sure all dependencies are added to Gemfile. (Gem::LoadError)
    from /Users/macuser/Sites/hq_channel/vendor/rails/actionpack/lib/action_controller.rb:34
  1. Странно, что там написано Rails 2.3.3 .. не знаю почему ..

  2. Я не могу понять, куда / как он загружается или пытается загрузить Rack 1.0.0 сейчас, когда я обновил его до Rack 1.1.0.

Есть идеи?

1 Ответ

0 голосов
/ 21 мая 2011

Если вы используете Bundler и сталкиваетесь с проблемами зависимостей с помощью локального двоичного файла, попробуйте префикс этого сценария с bundle exec:

bundle exec script/console

Под капотом это делает следующее:

  1. Запускает новый процесс ruby, который вызывает Bundler.setup (тем самым загружая все ваши пакеты)
  2. Выполняет команду, которую вы передали bundler exec в контексте ваших зависимостей Bundler

Это имеет тенденцию решать большинство проблем. Если после этого у вас все еще будут проблемы, лучше всего убедиться, что переменные окружения вашей оболочки верны и отлажены.

PS : Если ваша проблема в том, о чем я думаю, проблема здесь в том, что script/console тянет ваши системные гемы вместо тех, что предоставляются компоновщиком, поэтому вы видите неверная версия Rack и ошибки загрузки для других ваших драгоценных камней.

...