2012-03-15 9 views
2

github(:git => 'whatever')から直接宝石をインストールすると面白いエラーがあります。バンドルと隠された宝物

私はすべての宝石を削除し、 バンドルが installコマンドを実行したときに、私は次の取得まず

、:

 
Installing gem1 
Installing gem2 
Using gem3 (the one from github) 

私は私が持っているものを確認したいときに、私は宝石を使って、以下を参照してくださいリスト

 
gem1 (x.x.x) 
gem2 (y.y.y) 

んgem3 ...今、ファイルシステムに近い見て、私は以下を参照してください。

を210
 
ls -l ~/.rvm/gems/ruby-1.9.3-p125/gems 
gem1 
gem2 

宝石3はどこですか?だから、バンドラ/宝石の下に行くと宝石のリストに表示されていない

 
ls -l ~/.rvm/gems/ruby-1.9.3-p125/bundler/gems 
gem3-213213213 

...と私に次与えカピストラーノ展開、によって:私はそれがあることを期待していないところ

 
git://github.com/author/gem3.git (at master) is not checked out. Please run `bundle install` 

私はCapistranoが展開できないことをもっと心配しています...誰も手掛かりはありますか?

+0

デプロイ時に 'bundle install'を実行していませんか? –

+0

ええ、展開中にバンドルインストールを実行しています。私はすべての宝石を取り除き、デバッグの目的でバンドルを直接インストールしました。 – alexs333

答えて

1

Bundlerは、システム上のさまざまなソースからGemを取得します。彼らが正しいバージョンである限り、それはそれらを引き込むでしょう。

展開するとき、それはより厳格な/保守的な振る舞いを持っています。 --deploymentフラグが指定されたときに使用されている部分について展開モード、中bundle help installから

、:

宝石がベンダーにインストールされている/束ねないでデフォルトのシステムloca- ン

開発中に アプリケーションで使用されている宝石を、他のアプリケーションや システムで実行される他のスクリプトと共有すると便利です。

デプロイメントでは、分離がより重要なデフォルトです。さらに、 アプリケーションを配備しているユーザーが システムに宝石をインストールする権限を持っていないか、Webサーバーがそれらを読むことができない可能性があります。

この結果、バンドルインストール--deploymentは、アプリケーションのven- dor/bundleディレクトリにgemsをインストールします。これは--pathオプションを使用して を無効にすることができます。

+0

システム全体の宝石を使用するシステムを作ろうとすることで、敗戦戦いをしていたと思います。デプロイフラグ付きのソリューションが機能するので、私はそれに固執します!ありがとう。 – alexs333

関連する問題