6

vendor/gems/some-api-0.1.0にあり、別のプロジェクトからコピーされ、に追加された宝石を使用していGemfileます:

gem 'some-api', :path => '~/development/myproj/vendor/gems/some-api-0.1.0'

しかし、次のようにすると、次のメッセージで失敗します。

$ bundle install
Fetching source index for http://rubygems.org/
Could not find gem 'some-api (>= 0)' in source at ~/development/myproj/vendor/gems/some-api-0.1.0.
Source does not contain any versions of 'some-api (>= 0)'

ネットで検索すると、gemspec が必要なことを示唆しているように見えますか? だから私はどこかに書く必要があります.gemspec、それは本当ですか?この状況でそれがどのように行われるか、誰かが光を当てることができますか?

4

2 に答える 2

26

スタックオーバーフローには他にも多くの同様の投稿がありますが、誰かがこの投稿に出くわした場合に備えて:

何らかの理由で、ローカル ソースから gem を使用しようとする場合、使用している gem のバージョンを正確に指定する必要があります。

gem 'some-api', '0.2.0', :path => '~/development/myproj/vendor/gems/some-api-0.1.0'
于 2012-10-15T12:41:31.340 に答える
1

:path に宝石があると主張するだけでは、実際にそこに宝石があるとは限りません。Gem には、gem の名前、gem に属するファイル、およびその他のさまざまな情報を記述した gemspec ファイルがあります。

some-api-0.1.0:path ディレクトリに指定されたファイルが含まれているsome-api.gemspec必要があり、バンドラーが :path から gem を要求するために使用できる gem に関する情報が含まれている必要があります。

于 2011-05-12T18:22:40.453 に答える