【发布时间】:2017-03-01 06:01:56
【问题描述】:
我一直在阅读 rubygems.org 关于利用 Ruby gem 的语义版本控制模式的文章。
例如,我可能想使用一些名为 library 的 ruby gem,其中包括从 v2.2 到但不包括 v3.0 的所有小更新。我可以将它作为运行时依赖项添加到我的gemspec 或Gemfile:
some_gem.gemspec:
spec.add_runtime_dependency 'library','~> 2.2'
宝石文件:
gem 'library', '~> 2.2'
我也知道我们可以使用像 rbenv 这样的 ruby 版本管理来指定我们想要使用的 ruby 版本。
例如,我之前也将本地 ruby 版本设置为 system(在 macOS 上):
rbenv local system
其中在项目根目录中生成了一个.ruby-version 文件。
我对 gem 作者使用的 ruby 版本与 gem 版本有什么关系感到困惑。他们有关系吗?宝石作者如何管理 ruby 的版本? gem 作者是否为多个 ruby 版本发布 gem?
例如,如果作者使用2.3.1 构建她的gem,这是否意味着只有system ruby 的人将无法使用它?
【问题讨论】:
标签: ruby rubygems versioning