2012-01-19 24 views
3

私はHerokuのホストされたアプリケーションで使用したい公開されていないレポ(ローカルファイルシステム上)ではない宝石を持っています。私は試してみて、それがキャッシュを使用して取得することbundle install --path vendorbundle packageを使用しましたBundlerとHeroku:条件付きの宝石/ 2種類の宝石

group :production do 
    gem 'mygem', :git => #giturl 
end 

group :development do 
    gem "mygem", :require => "mygem", :path => "/gem_dev/mygem" 
end 

$ bundle install 
... 
You cannot specify the same gem twice coming from different sources. You specified that mygem (>= 0) should come from source at vendor/cache and source at ... 

が、宝石はローカルパスであるためバンドラーは(私に語った:

バンドラーはさらに、たとえば、これを許可していません。それはキャッシュされません)。これを回避するために、私は、ベンダー/キャッシュに.gemをコピーし、Gemfileにラインを持っていた:

gem 'mygem', :path => 'vendor/cache' 

が、私はバンドラーからこのエラーを取得する:

Could not find gem 'mygem (>= 0) ruby' in source at vendor/cache. 
Source does not contain any versions of 'mygem (>= 0) ruby' 

Herokuのは、有効なパスを必要とします。どのように私は私のために働くためにこれを得ることができる任意のアイデア?

ご迷惑をおかけして申し訳ありません。

+1

http://www.cowboycoded.com/2010/08/10/using-2-sources-for-a-gem-in-different-environments-with-bundler/ – Gazler

+0

私はすでにそれを試みましたが、宝石は公共のgit repoではないので、それは動作しません。私はローカルファイルパスを使ってgit urlとしてアクセスしようとしています。 – iain

+0

いいえ、 ':git =>" file:/// path-to-local-filesystem-repo "を使用すると、gemはインストールされますが、キャッシュは更新されません。 'bundle package'を再度実行しても、それをキャッシュに移動しませんでした。 – iain

答えて