18

2つの宝石がある場合、AおよびBA1.0.0に依存しB1.0.0ます。

私のGemfileで:

gem 'A', '~> 1.0.0'

次に、を実行しbundleます。次のようなGemfile.lockが生成されます。

A (1.0.0)
  B (1.0.0)

Aしかし、強制的に使用したい場合B1.0.1、ベストプラクティスは何ですか?さらに、B1.0.1リリースではなくgithubタグの場合はどうなりますか?

4

1 に答える 1

23

Git リポジトリまたは別のバージョンを使用するには、Gemfile で B gem を明示的に指定する必要があります。A 1.0.0 が B 1.0.1 と互換性がある限り、問題ありません。B 1.0.0 とのみ互換性がある場合は、A gem の独自のフォークを作成し、B 1.0.1 と互換性があるように gemspec をアップグレードしてから、そのリポジトリを ruby​​gems の代わりに A の gem として使用する必要があります。バージョン。

以下は、A 1.0.0 が B 1.0.1 と互換性がある場合に必要なものを提供するサンプル Gemfile です。

gem 'B', :git => 'git://github.com/B/B.git', :tag => '1.0.1'
gem 'A', '~> 1.0.0'
于 2011-09-15T16:50:46.740 に答える