Gemfile.lock и зависимость платформы от gem? - PullRequest
3 голосов
/ 24 ноября 2011

My Gemfile и Gemfile.lock находятся в Git хранилище, как http://gembundler.com/deploying.html

Я использую 'rbconfig' для предотвращения загрузки rb-fsevent на производственном сервере Linux, но Capistrano не удается выполнить команду 'bundle install'

Я использую Capistrano с Требовать 'bundler/capistrano'

См. Трассировку стека:

You are trying to install in deployment mode after changing
Your Gemfile. Run 'bundle install' elsewhere and add the
Updated Gemfile.lock to version control.

You have deleted from the Gemfile:
rb-fsevent

по моему Gemfile:

case HOST_OS
  when /darwin/i
    gem "rb-fsevent"
end

Как этого избежать?

Ответы [ 2 ]

2 голосов
/ 19 ноября 2015

У меня была точно такая же проблема, похоже, что уже был исправлен компоновщиком , но он недостаточно документирован.

Попробуйте с install_if и лямбда:

gem 'rb-fsevent', install_if: ->() { `uname` =~ /darwin/i }
0 голосов
/ 17 апреля 2015

В Capistrano вы можете установить опцию, например set :bundle_without, [:darwin], чтобы пропустить определенные группы при объединении ваших драгоценных камней в производство.

Попробуйте назначить камень группе: gem "rb-fsevent", group: :darwin в вашем Gemfile и повторите попытку послевыполнение $ bundle на вашем локальном компьютере && отправка в удаленный репозиторий.

...