Подтвердить что ты не робот

Ошибка Bundler при развертывании

В настоящее время я использую гвардию guard-coffeescript, чтобы скомпилировать мой javascript (и в будущем, вероятно, добавлю несколько дополнительных задач защиты) в свою систему OSX dev. Я добавил жемчужину rb-fsevent к моему Gemspec, теперь я увидел, что во многих Gemspecs добавлен оператор if, например:

gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i

Попытка развертывания в моей промежуточной/производственной среде, работающей под Linux, script, выполняемая на сервере, использует результаты bundle install --deployment в следующем исключении:

# bundle install --deployment
You have modified your Gemfile in development but did not check
the resulting snapshot (Gemfile.lock) into version control

You have deleted from the Gemfile:
* rb-fsevent

Есть ли способ обойти эту проблему или мне просто нужно удалить if, чтобы я мог развернуть свою систему и, в свою очередь, установить драгоценный камень, который бесполезен на платформе, отличной от OSX?

-

edit: я запускаю bundle install перед развертыванием в мою промежуточную среду и запускаю bundle check после первого сбоя. Я запустил его после удаления инструкции if.

4b9b3361

Ответ 1

У меня была аналогичная проблема. Если вы используете capistrano, вы можете установить следующий параметр:

set :bundle_without, [:darwin, :development, :test]

Затем заверните строку gb 'rb-fsevent' в группе под названием darwin. Что-то вроде этого должно работать красиво:

group :test, :darwin do
  gem 'rb-fsevent'
end

Это делает связку делать это на сервере:

bundle --without darwin development test

Это означает, что он игнорирует эти группы в Gemfile.lock. То, что вы делали, заставит вашу машину OS X и ваш сервер придумать разные файлы блокировки. Вот почему он жаловался.

Ответ 2

У меня была такая же проблема, и решение Luke исправило это для меня, однако, только после того, как я удалил строку :require => false if RUBY_PLATFORM =~ /darwin/i, которая обычно используется.

Ответ 3

Как описано в

https://github.com/guard/guard

решение просто

group :development do
  gem 'rb-inotify', :require => false
  gem 'rb-fsevent', :require => false
  gem 'rb-fchange', :require => false
end