Satoryu's Diary

Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。


2014年03月05日 [長年日記]

_ gitプロトコルが使えない環境でgithub指定ありのGemfileでbundle install する方法

タイトルを書いてて、これは誰得なのかが見えていないけど、俺得なのでメモ。 ネットワーク環境によっては、gitプロトコルが使えないところもある*1 。そんな環境で、Gemfileに

gem 'hoge', github: 'foo/hoge' 

のようなgemをgithubから取得するような設定が書かれていると、bundle installがgitプロトコルでcloneするため、エラーとなってしまう。

そんなときには、SSHやHTTPSのいずれかで予めgit cloneしておき、bundle configでそちらを参照するようにすると、インストールできる。 具体的には、以下のような手順になる。

予め対象のgemをcloneする

gitプロトコル以外が使えるという前提なので、ここでは単純に別のプロトコルでcloneしておくだけ。

$ cd /path/to
$ git clone git@github.com:foo/hoge

bundle configで参照先を指定

$ bundle config local.hoge /path/to/hoge

これでbundlerは hoge gem のありかは指定されたパスに存在し、それを読み込むという挙動に変わる。

bundle install

最後にhoge gemを利用しようとしているアプリケーションでbundle installを実行する。 Gemfileを書き換えは、

gem 'hoge', github: 'foo/hoge' , branch: :master

あとはbundle inall をすればOK

参考

Tags: ruby bundler

*1 某R社とかね。


最近の投稿

翻訳しました(ちょっとだけ)

follow us in feedly