I'm developing a Rails app on a Mac, and I'm new to testing, so I just added these gems to my Gemfile:
group :test, :development do
gem 'rspec-rails'
gem 'rb-fsevent'
gem 'growl'
end
But my production server runs Linux, so even if they aren't grouped in :production
, bundler (v1.0.21) still attempts to install them. ...and fails, obviously!
extconf.rb:19:in '<main>': Only Darwin (Mac OS X) systems are supported (RuntimeError)
Setting RAILS_ENV
to production before running bundle install
doesn't work.
It worked by running bundle install --without development test
, but how can these gems be taken into consideration by bundler only based on your OS?
Edit: The bundler wiki provides details on how to use platform as a parameter.
The same solution is given in bundler issue #663, so I tried:
group :test, :development do
gem 'rspec-rails'
platforms :darwin do
gem 'rb-fsevent'
gem 'growl'
end
end
bundle install
does not work, but even if we go back to square one and do
bundle install --without darwin
, the result is 'darwin' is not a valid platform.
The available options are: [:ruby, :ruby_18, :ruby_19, :mri, :mri_18, :mri_19, :rbx, :jruby, :mswin, :mingw, :mingw_18, :mingw_19]
Any other (elegant) approaches?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…