我的gem依赖于nokogiri ~> 1.5.0。我想保留这个依赖项,因为这个版本有更少的编译时依赖项,并且通常安装没有问题。nokogiri 1.6。X似乎有更多的安装问题。因此,虽然我想支持nokogiri 1.6,如果它已经安装,我不想让它默认依赖。
因此:首选nokogiri ~> 1.5.0,但如果有1.6,则使用1.6。
是否可以在我的Gemfile或gemspec中表示为依赖项?
您可以在gemspec中指定一个以逗号分隔的版本说明符列表。
spec.add_runtime_dependency "nokogiri", ">= 1.5.0", "< 1.7"
表示任何1.5。X或1.6。
Rubygems没有任何"首选"版本的概念。Bundler和gem通常会尝试安装满足所有约束的最新版本。