Сбой развертывания Capistrano / Passenger из-за разных версий gem

#ruby-on-rails-3 #rubygems #capistrano #passenger #dreamhost

#ruby-on-rails-3 #rubygems #capistrano #пассажир #dreamhost

Вопрос:

Я пытаюсь развернуть свое приложение Rails на своем веб-хостинге (DreamHost) с помощью Capistrano, но он продолжает терпеть неудачу, потому что различные gems, установленные на сервере, имеют другую версию.

Я могу обойти это, вручную устанавливая, одну за другой, конкретную версию gem, когда Capistrano жалуется на это.

Должен быть лучший способ .. могу ли я что-нибудь сделать, чтобы при развертывании автоматически устанавливались разные версии, если требуется?

Ответ №1:

Да, есть, и это запечено прямо в bundler…

Вам просто нужно добавить require 'bundler/capistrano' в свой cap-файл, и с этого момента все должно быть в порядке.

Если все не в порядке, вы можете попробовать cap bundle:install вручную все прояснить перед установкой.

Комментарии:

1. Спасибо. У меня только одна проблема с этим: bundler не установлен на моем веб-хостинге, но я установил его вручную, и я могу запустить bundle, когда подключаюсь к нему по ssh. Однако он не может найти команду bundle через Capistrano. что я упускаю?

2. Установив переменную bundle_cmd set :bundle_cmd, PATH_TO_BINARY , вы можете задать точный путь к двоичному файлу bundler. Вам просто нужно проверить, где находятся ваши драгоценные камни.