update rails how error ruby-on-rails linux macos bundler guard

ruby on rails - rails - Error de Bundler en la implementación



gem install json 1.8 3 error (3)

Actualmente estoy usando Guard, es decir, guard-coffeescript gema para compilar mi javascript (y en el futuro probablemente agregaré más tareas de guarda) en mi sistema de desarrollo OSX. rb-fsevent gema rb-fsevent a mi Gemspec, ahora vi que en muchos Gemspecs se agrega con una declaración if como esta:

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

Intentando implementarlo en mi entorno de bundle install --deployment / producción, que se ejecuta en Linux, la secuencia de comandos ejecutada en el servidor utiliza la bundle install --deployment del bundle install --deployment resultados de la bundle install --deployment se encuentran en la siguiente excepción:

# 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

¿Hay alguna forma de solucionar este problema o simplemente debo eliminar el ''if'' para poder implementarlo en mi sistema y, a su vez, instalar una gema que no sirve para nada en una plataforma que no sea OSX?

-

edición: ejecuto bundle install antes de implementarlo en mi entorno de pruebas y ejecuto la bundle check después de la primera vez que falló. Lo tengo funcionando después de quitar la sentencia if ...


Como se describe en

https://github.com/guard/guard

la solución es simplemente

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


Tuve exactamente el mismo problema y la solución de Luke lo solucionó, sin embargo, solo después de haber eliminado :require => false if RUBY_PLATFORM =~ /darwin/i cadena que se usa comúnmente.


Tuve un problema similar. Si estás usando capistrano puedes configurar la siguiente opción:

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

Luego envuelve tu línea de gemas ''rb-fsevent'' en un grupo llamado Darwin. Algo como esto debería funcionar bien:

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

Esto hace que Bundler haga esto en el servidor:

bundle --without darwin development test

Lo que significa que ignora esos grupos en el Gemfile.lock. Lo que estaba haciendo haría que su máquina OS X y su servidor crearan diferentes archivos de bloqueo resultantes. Por eso se quejaba.