2011-02-01 7 views
1

私は同時に開発しているライブラリに依存するレールアプリを持っています。.gemファイルをバンドルラー(ソースではない)に含める方法

私はアプリケーションをデプロイするときに、さまざまな理由でgemをロードするためにbundleerでgit => ''オプションを使用するオプションがありません。理想的には私がやりたいことは、次の

Gemfile

gem 'system-api', :gem => 'vendor/system-api-1.0.0.gem' 

私は宝石を事前に構築し、単にプロジェクトにそれを含めるとgitのにそれを確認したいです。

バンドラでこれを行う方法はありますか、またはバンドラを使用しないでも可能ですか?

[UPDATE 1]

私が試した " '1.0.0'、宝石 'システムのAPIを':パスは=> 'ベンダー/'" とバンドラは、それが正しくインストール言いますが、宝石はdoesnの'gem list'に表示されません。また、レイルプロジェクトには参照がありません。これは 'bundle show'コマンドで表示されます。

答えて

0

バンドルラーには:pathオプションがあります。これは、プロジェクトのGemfileの場所に関連して実行されます。詳細はを参照してくださいbundler's Gemfile docs

gem 'system-api', :path => "vendor" 

:パスはフォルダのみではなく、実際の宝石の名前を指定します。

+0

私はこれを試しました:gem 'system-api'、 '0.0.3'、:path => 'vendor /'そしてbundlerは正しくインストールされていると言うが、 'gem list'レールプロジェクトには参照があります。 –

0

あなたはX.gemは、あなたが「バンドルパッケージ」を実行した場合バンドラが構築.gemファイルを置く場所を、そのだ./vendor/cache

にファイルを置けば、それはうまくいくかもしれません。だからあなたがそこに置いたら、バンドラーはそれを見つけますか?多分。しかし、Bundlerがサポートしているかどうかは、./vendor/cacheや他のものにパッケージ化されているかどうかは分かりません.Bundlerがサポートしているかどうかは完全にはわかりません。

http://gembundler.com/bundle_package.html http://gembundler.com/man/bundle-package.1.html

代わりにあなたのレポにあなた事前に構築されたX.gemをチェックするには、Xのソースを確認することができた場合gemをあなたのレポに追加し、ソースにはX.gemspecファイルが含まれています。次に、:pathオプションを使用できます。しかし、:pathオプションは* .gemパッケージではなく、ソースを指すことを期待していると思います。単に* .gemを解凍すると、bundler gem:pathを使用できるディレクトリが作成される可能性があります。 (A * .gemプロダクトはちょうどzipfile ...私は思う。)。

決定的な回答ではありませんが、多分探索するためのアイデアは多分あります。

0

私はそれが普通だと言うでしょうgem listはあなたの宝石を表示しません。あなたはbundler経由でインストールしました。gem listを実行しているときにはbundlerを起動しません。代わりに、bundler exec gem listで確認してください。ところで

、あなたはいつもあなたが(バンドラーアップとランニングを取得するための独自の方法を持っていrails serverを除いて)実行するすべてのコマンドラインの前にbundler execを使用する必要がありますバンドラーを使用している場合:bundle-exec man page

0

私は次のようでした、働く:

gem 'libv8', '3.11.8.3mytest', :path => '../libv8/pkg' 

をそして../libv8/pkgフォルダには、バイナリパッケージ宝石libv8-3.11.8.3mytest-x86_64-linux.gemが含まれています。

これが役に立ちます。

関連する問題