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
参考
*1 某R社とかね。
[ツッコミを入れる]