ind*_*086 15 ruby git sinatra bundler
所以我正在为Windows和Linux开发Sinatra.问题是我使用的是Thin而不是Webrick,而eventmachine for windows仅适用于预发布版本,而linux使用最新的稳定版本.在gemfile中你当然不能包含不同版本的相同gem,如下所示:
gem "eventmachine", "~> 1.0.0.beta.4.1", :group => :development_win
gem "eventmachine", group => :development_linux
gem "thin
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法解决这个问题,可能使用一个用于windows的gemfile和一个用于linux的gemfile,该命令将加载一个或另一个.
或者有一种方法可能在git中管理两个不同平台的gemfile,也许只通过文件的分支(不知道这是否可能来自我读过的git分支).
KL-*_*L-7 20
你可以这样做:
# Windows
gem "eventmachine", "~> 1.0.0.beta.4.1", :platform => [:mswin, :mingw]
# C Ruby (MRI) or Rubinius, but NOT Windows
gem "eventmachine", :platform => :ruby
Run Code Online (Sandbox Code Playgroud)
可用平台的完整列表:
ruby C Ruby (MRI) or Rubinius, but NOT Windows
ruby_18 ruby AND version 1.8
ruby_19 ruby AND version 1.9
ruby_20 ruby AND version 2.0
mri Same as ruby, but not Rubinius
mri_18 mri AND version 1.8
mri_19 mri AND version 1.9
mri_20 mri AND version 2.0
rbx Same as ruby, but only Rubinius (not MRI)
jruby JRuby
mswin Windows
mingw Windows 'mingw32' platform (aka RubyInstaller)
mingw_18 mingw AND version 1.8
mingw_19 mingw AND version 1.9
mingw_20 mingw AND version 2.0
Run Code Online (Sandbox Code Playgroud)
您可以在此处的Gemfile(5)手册页中找到更多信息(请参阅"平台"部分).
另一种方法是使用RUBY_PLATFORM常量:
if RUBY_PLATFORM =~ /win32/
gem "eventmachine", "~> 1.0.0.beta.4.1"
else
gem "eventmachine"
end
Run Code Online (Sandbox Code Playgroud)
我还没有看到可用值的完整列表,RUBY_PLATFORM但您可以运行
ruby -e 'puts RUBY_PLATFORM'
Run Code Online (Sandbox Code Playgroud)
在你的平台上,看看差异.
| 归档时间: |
|
| 查看次数: |
4946 次 |
| 最近记录: |