18

こちらの手順を使用して、バンドラーを使用してプレリリース バージョンの gem をインストールしようとしています。

「bundle install」の出力には、gem がインストール済みとしてリストされますが、「gem list」では見つけられません。

私の Gemfile:

source :gemcutter

gem 'sinatra', '1.1.0', :git => 'http://github.com/sinatra/sinatra.git'
gem 'RedCloth', '4.2.3'

これが私のサンプルコードの残りの要点です。

誰かがこのシナリオを機能させましたか?

注: RVM (OS X 上) も使用しています。bundle show は gem (および依存関係) を既存のものとしてリストしますが、それらを適切に解決することはできません。

ありがとう。

4

4 に答える 4

23

ロード パスを確認し、そこからさらにデバッグします。例:

...(master) $ irb
irb(main):001:0> $LOAD_PATH.count
=> 8
irb(main):004:0> require 'bundler/setup'
=> true
irb(main):005:0> $LOAD_PATH.count
=> 112
irb(main):006:0> 

Bundler はロード パスを構成します。これは、すべての gem がデフォルトでロード パスに含まれているわけではないことを意味します。

さらに、バンドラーの git helpから:

Rubygems には git からの gem を処理する機能がないため、git リポジトリからインストールされたgem はgem listに表示されません。ただし、Bundler.setup の実行後に利用可能になります。

よろしく、これがお役に立てば幸いです

ED

于 2011-09-19T17:28:27.527 に答える
2

Bundler によってアプリにローカルにインストールされている可能性があります。これは、OS や RVM を使用しているかどうかによって、大きく異なる可能性があります。

の出力はbundle show sinatra何ですか?

私の場合、sinatra は次の場所にインストールされました。

/home/marshall/.rvm/gems/ruby-1.8.7-p302@3846859/bundler/gems/sinatra-9cfa74a7f352

Sinatra は gems リストに表示されませんが、 を実行するとサーバーは正しく起動しますrackup

于 2010-10-02T18:25:20.007 に答える
0

エンジンヤードにバンドラーを介してインストールされた宝石は、それらを分離するために別のフォルダーに移動します。

それは通常です/data/APP_NAME/shared/bundled_gems

確かに、.bundle/configEngineYardのAPPフォルダにあるファイルを確認してください

于 2011-09-19T17:48:04.610 に答える
0

Shotgun と Bundler の使用に問題があるようです(git リポジトリのみ)。

ラックアップを使用してアプリを起動すると、すべてがうまくいきます。もう少し調査してから、プロジェクトの 1 つ (または両方) にバグを報告します。

于 2010-10-04T13:02:15.820 に答える