【问题标题】:What does the version of a ruby gem have to do with the version of ruby used during development?ruby gem 的版本与开发期间使用的 ruby​​ 版本有什么关系?
【发布时间】:2017-03-01 06:01:56
【问题描述】:

我一直在阅读 rubygems.org 关于利用 Ruby gem 的语义版本控制模式的文章。

例如,我可能想使用一些名为 library 的 ruby​​ gem,其中包括从 v2.2 到但不包括 v3.0 的所有小更新。我可以将它作为运行时依赖项添加到我的gemspecGemfile

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


    【解决方案1】:

    ruby 版本规范是可选的,只是用于帮助开发人员更轻松地使用 gem。例如,有许多 2.3 gem 没有 required_ruby_version 集。如果您尝试在 1.9 上运行它们,您可能会遇到错误,但它们不会明确指出 ruby​​ 版本是错误的,因此它们会更难调试。

    顺便说一句,您可以将 2.3 作为系统 ruby​​ - sudo apt-get install ruby2.3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多