Gemをbundlerでダウンロードしローカルに保存、オフラインでインストールしたい

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 intsall --path=vendor/bundle --local

cache に保存された gem からインストールされ、オフライン環境でも gem の状態が復元できました。

何らかの理由でインターネットに接続できなくなったり、必要な gem が公開されなくなったりに備えて、オフラインでインストールすることがなくとも、ローカル用に保存しておくとよいかもしれません。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする