如何解决自定义 RubyGem 的依赖关系?

How to resolve dependencies of a custom RubyGem?

我正在写一个 ruby gem,它依赖于另一个 gem。

例如。我正在编写一个名为“ABC”的 gem,它依赖于“XYZ”。如何让 gem 在我尝试安装“ABC”时自动安装“XYZ”?

I'm writing a gem called "ABC" which has a dependency on "XYZ". How to make my gem install "XYZ" automatically when I try to install "ABC" ?

您不应尝试让 gem 自动安装依赖项。这就是 字面上 RubyGems 的用途。 RubyGems 会自动解决依赖关系,您的 gem 不需要这样做。

只需在 .gemspec 文件中定义所需的依赖项:

https://guides.rubygems.org/specification-reference/#add_runtime_dependency

spec.add_runtime_dependency 'example', '~> 1.1', '>= 1.1.4'

它们将在安装 gem 时安装(或者如果依赖项已经存在则使用)。

还有一种安装开发依赖项的方法:https://guides.rubygems.org/specification-reference/#add_development_dependency

spec.add_development_dependency 'example', '~> 1.1', '>= 1.1.4'

对于开发所需的那些 gem(如 rspec)但最终产品工作不需要。