Пассажир 3 с Rails 3 не загружает драгоценные камни от продавца / - PullRequest
2 голосов
/ 16 декабря 2010

Я установил новую среду с Ruby 1.9.2 и Passenger 3. Приложение Rails 3 развертывается с Capistrano.RAILS_ENV настроен на постановку.

При попытке загрузить приложение Пассажир жалуется на отсутствие драгоценного камня.Запуск

bundle --deployment 

устанавливает драгоценные камни в RAILS_ROOT / vendor, но не устраняет ошибку.

Если я установлю отсутствующий драгоценный камень в качестве системного (например, sudo gem install), ошибка исчезнет, ​​но теперь следующий драгоценный камень в Gemfile будет указан как отсутствующий.

Я мог бы решить эту проблемуустановив мои драгоценные камни в систему, но я хотел бы понять, почему их установка в каталог vendor не работает.Насколько я понимаю, идея упаковщика состоит в том, чтобы не устанавливать все гемы, установленные в систему.

У меня RAILS_ROOT / .bundle / config, установленный в:

BUNDLE_FROZEN: "1"
BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: "1"

1 Ответ

0 голосов
/ 16 декабря 2010

В идеале гемы должны оставаться в согласованном месте, чтобы избежать их повторной установки при каждом развертывании.Поэтому попробуйте удалить BUNDLE_PATH из вашей конфигурации (по умолчанию ~/.bundle).

Я не уверен, что делает bundle --deployment (я не видел упоминания об этом в документации)Я использую что-то вроде этой команды в моих сценариях развертывания:

after :'deploy:update_code' do
  run "cd #{release_path} && bundle install --without test cucumber development"
end
...