2.2系では bundle package
が廃止されているようです。
gem パッケージをがっつりインストールしてくれる bundler はとても便利ですが、オフライン環境に何もできなくなってしまい、どうにもなりません。
限られたネットワーク内で rails アプリなどをセットアップしたい場合、あらかじめ gem をダウンロードして、ローカルインストールしたいです。
rails での利用を前提に考えましたが、bundler を使う限り同じだと思います。
目次
Gem のダウンロード
普通に Bundler を用いてインストールします。Gemfile には任意の gem が書いてあるとします。
bundle install --path=vendor/bundle
ここはインターネットに繋がる環境で行います。
Gem をローカルに保存
ここからオフラインで作業できます。
bundle install したら、インストールされた gem をローカル用に保存します。
bundle package
vendor/cache 以下に インストールした .gem がコピーされます。
ローカル Gem をインストール
vendor/cache
がある状態で、--local
オプションをつけてインストールします。
bundle install --path=vendor/bundle --local
cache に保存された gem からインストールされ、オフライン環境でも gem の状態が復元できました。
*
オフラインでインストールすることがなくとも、何らかの理由でインターネットに接続できなくなったり、必要な gem が公開されなくなったりに備えて、ローカル用に保存しておくとよいかもしれません。