Rubyが好きなプログラマーの日記。日々の生活、開発に関するメモとか考えとか。
タイトルを書いてて、これは誰得なのかが見えていないけど、俺得なのでメモ。 ネットワーク環境によっては、gitプロトコルが使えないところもある*1 。そんな環境で、Gemfileに
gem 'hoge', github: 'foo/hoge'
のようなgemをgithubから取得するような設定が書かれていると、bundle install
がgitプロトコルでcloneするため、エラーとなってしまう。
そんなときには、SSHやHTTPSのいずれかで予めgit clone
しておき、bundle config
でそちらを参照するようにすると、インストールできる。
具体的には、以下のような手順になる。
gitプロトコル以外が使えるという前提なので、ここでは単純に別のプロトコルでcloneしておくだけ。
$ cd /path/to
$ git clone git@github.com:foo/hoge
$ 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社とかね。