繁体   English   中英

在Windows和Linux / OS X的Gemfile中指定不同的Ruby版本(例如1.9.3和2.1)吗?

[英]Specify different Ruby versions (e.g. 1.9.3 vs 2.1) in Gemfile for Windows and Linux/OS X?

我在Ruby on Rails项目中,我们有Windows和Linux计算机。 该项目使用Ruby 2.1,但作为Windows开发人员,我需要使用较低版本的Ruby(如ruby 1.9.3或Ruby 2.0)才能顺利进行本地开发工作。

因此,为了自动基于平台为我的Rails项目实现自定义Ruby版本,我尝试修改Gemfile以为每个平台隔离不同的Gems和Ruby版本:

platforms :ruby do # linux & Mac only
  ruby '2.1.0' #doesn't work, still tries to load ruby 1.9.3
  gem 'puma', '~> 2.7.1' #works
end

platforms :mswin do #Windows only
  ruby '1.9.3' #doesn't work, overrides Linux/mac users to Ruby 1.9.3 rather than 2.1
  gem 'thin' # works
end

platforms :rubyplatforms :mswin显然仅适用于指定Gems,而不适用于指定Ruby版本。 如何设置本地Windows开发环境,以便可以在同一Gemfile中自动处理较低/不同的Ruby版本,而又不影响我的同事?

注意:

.rubyversion读取2.1.0虽然我可以.gitignore来为每个环境指定该文件,但是Heroku要求我们在Gemfile中指定一个Ruby版本-因此我们需要某种方法在Gemfile级别上对此进行解析。

Gemfile是用Ruby实现的DSL,因此您可以在这里调用Ruby代码:

ruby RUBY_PLATFROM =~ /win/ ? '1.9.2' : '2.1.0'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM