Bundlerに地元の宝石をロードしてほしいのですが。そのための選択肢はありますか?それとも、gemフォルダを.bundleディレクトリに移動する必要がありますか?
私はあなたがこれをすることができると思います:
gem "foo", :path => "/path/to/foo"
パスを指定すること(Jimmyが述べたように)に加えて、次の設定オプションを使うことでBundlerにあなたの環境だけにローカルのgemを使うよう強制することもできます。
$ bundle config local.GEM_NAME /path/to/local/git/repository
これは、2つの宝石または1つの宝石とRailsアプリを並べて開発している場合に非常に役立ちます。
ただし、これは依存関係に既にgitを使用している場合にのみ機能することに注意してください。例えば、
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
に見られるように ドキュメント 。
もしあなたがたまたまそれに取り組んでいるなら、あなたはgitでローカルのgemを参照することもできます。
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
それで、それが変わったら私は走る
bundle exec gem uninstall foo
bundle update foo
しかし、私は誰もがこれら2つのステップを実行する必要があるかどうかわからない。
Railsプロジェクトでローカルのgemリポジトリを使用するには、以下の手順に従ってください。
あなたのgemフォルダがgitリポジトリであるか確認してください(コマンドはgemフォルダ内で実行されます)
git rev-parse --is-inside-work-tree
リポジトリパスの取得(コマンドはgemフォルダ内で実行されます)
git rev-parse --show-toplevel
Railsアプリケーションのローカルオーバーライドを設定する
bundle config local.GEM_NAME /path/to/local/git/repository
ここで、GEM_NAME
はあなたのgemの名前、/path/to/local/git/repository
はその時点でのコマンドの出力です2
アプリケーションGemfile
に次の行を追加します。
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
bundle install
を実行すると、次のようになります。
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
GEM_NAME
はあなたの宝石の名前、/path/to/local/git/repository
は2
のところです。
最後に、bundle list
ではなくgem list
を実行すると、次のようになります。
GEM_NAME (0.0.1 5a68b88)
GEM_NAME
はあなたの宝石の名前です。
私が見ているいくつかの重要なケース:
Rails 4.0.2
Ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine
はローカルのgemを外部ライブラリとして表示していないようです。バグに関するより多くの情報は こちら そして こちら にあります。stop/start
するべきですGemのversion
を変更しようとすると、Railsサーバーのstopping/starting
でエラーが発生します。これを修正するために、RailsアプリケーションGemfile
でgemのバージョンを次のように指定しています。
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
Gemはsource:source: 'https://source.com', git repository (:github => 'git/url')
とローカルパス:path => '.../path/gem_name'
で参照できます。
この記事では Gemfilesとその使い方 についてさらに学ぶことができます。