2011-05-08 23:00:07 +0900
RubyGems.orgには登録しないプライベートなgemを作った場合、Railsプロジェクトからはどのように利用するか。
まず、Railsプロジェクトのvendor/gems
以下にpkg/foo-1.0.0.gem
を、展開する。
$ cd /path/to/some_rails_project
$ gem unpack /path/to/foo-1.0.0.gem --target vendor/gems
$ ls vendor/gems
foo-1.0.0
次にGemfile
に以下のようなエントリを追加する(:path
が相対パスだった場合は、Gemfile
のあるパスが起点となる)。
gem 'foo', :path => 'vendor/gems/foo-1.0.0'
この状態でbundle
すれば、あとはbundler
が*.gemspec
ファイルを参照して上手いことやってくれる。
$ bundle
gemを展開したvendor/gems/foo-1.0.0
ディレクトリ内に*.gemspec
ファイルが存在しない場合は、以下のようにバージョンを明示する必要があるみたい。
gem 'foo', '= 1.0.0', :path => 'vendor/gems/foo-1.0.0'
参考:ruby on rails - How do I vendorize gems for Rails3/Bundler - Stack Overflow