2

我的目标是让 bundler 尝试安装每个 gem,但是如果 gem 无法安装(通常是由于本机扩展),并且不需要 gem,那么它会继续尝试安装下一个。

我已经为此苦苦挣扎了一段时间,这是由于尝试在 linux上构建rb-fsevent with native extensionsgrowl_notify任何帮助,将不胜感激。

宝石文件:

source 'http://rubygems.org'

def darwin_only(require_as)
  RUBY_PLATFORM.include?('darwin') && require_as
end

def linux_only(require_as)
  RUBY_PLATFORM.include?('linux') && require_as
end

gem 'sinatra'
gem 'httparty', '~>0.8.1'

group :development do
  gem 'shotgun'
  gem 'heroku'

  gem 'jasmine-headless-webkit'
  gem 'guard-jasmine-headless-webkit'
  gem 'growl_notify', require: darwin_only('growl_notify')
  gem 'rb-fsevent',   require: darwin_only('rb-fsevent') 
  gem 'rb-inotify',   require: linux_only('rb-inotify')
  gem 'libnotify',    require: linux_only('libnotify')
end
4

1 回答 1

2

我也为此苦苦挣扎。我已经求助于创建另一个组,并将那些失败的人放入该组,然后gem install --without group如果它是您自己的 gem ,则可以根据平台修改 gem 安装行为 ,但如果您不控制代码,那么这是我唯一能想到的。希望您正在处理的平台与您的开发、生产等组相对应。

我认为这确实是您的问题: 让捆绑器为不同的平台使用不同的宝石

于 2013-07-24T18:35:33.623 回答