2012-08-22 [長年日記]
_ gem fetch でgithubから .gem 形式でダウンロード
bundle cache するとbundlerはGemfileに書いてあるgem群を
/vender/cache/ 以下に *.gem ファイル群として置いてくれます。
ネットワークの使えない環境へ持っていくときなどに便利です。
(持って行った先で bundle install --local --path vendor/bundle で
vendor/bundle 以下に環境が構築されます。)
ところが、
gem 'acts_as_list', '0.1.6', :git => 'http://github.com/swanandp/acts_as_list.git'
といった具合に :git で参照先が書いてあるものは.gemとして置いてくれません。
githubの場合は以下のコマンドでローカルに.gemとしてDLできます。
gem fetch acts_as_list --version=0.1.6 --source=http://gems.github.com/
Gemfileの :git 以降は削除しないといけないですが、
これでネットワークの使えない環境へ持っていけます。
この方法だとバージョンが同じであっても git master と gem の内容が異なることになりません?<br><br>自分がやっていた時は vendor/git_cache みたいなディレクトリに git clone とかして Gemfile の path: 'vendor/git_cache/acts_as_list' みたいにしてました。
>hsbtさん<br>なるほど!今回の用途はgem化で足りましたが、次回はpathで指定するのも検討します。ありがとうございます!:)