ローカルのRubyをなるべく汚さずにRuby on Railsの開発環境を作る

gem install railsとしたら、グローバルな環境にRailsがインストールされ、なおかつ依存関係のあるgemが大量にインストールされます。

ローカルの環境が汚染されるのをなるべく避けるために、プロジェクト単位でgemを管理できたらと思って調べていたら、いい感じの方法が見つかったので、備忘録としてメモです。

デフォルト以外のgemをアンインストール

きれいさっぱり。

$ gem list --no-versions | grep "^[a-z]" | xargs gem uninstall -aIx

bundlerのインストール

bundlerだけはグローバルにインストールします。

$ gem install bundler

アプリケーションフォルダの作成

先にアプリケーションフォルダを作ってしまいます。

$ mkdir sampleApp
$ cd sampleApp

Railsのインストール(仮)

Gemfileを作ります。

$ bundle init

Gemfileを編集し、以下のようにします。

source 'https://rubygems.org'

gem 'rails' # ここのコメントアウトを外す

 

編集したら、とりあえず仮にrailsをインストールします。

この時に--path vendor/bundleの記述を忘れないようにしてください。(グローバルインストールされてしまうため)

$ bundle install --path vendor/bundle

Railsプロジェクトの作成

以下のコマンドでRailsプロジェクトを作成します。

ここで注意することは、--skip-bundleの記述を忘れないようにしてください。
rails newコマンドは何もオプションを指定しないとbundle installを自動的に実行してしまいます。つまりは、グローバ...(略))

$ bundle exec rails new . --skip-bundle

ここで、Gemfileがconflictを起こすと思いますが、上書きで問題ないので「Y」で通過してしまってください。

仮ファイルの削除

$ rm -rf .bundle
$ rm -rf vendor/bundle

Railsプロジェクトの本セットアップ

必要に応じてGemfileを編集したあと、以下のコマンドでgemをインストールします。

$ bundle install --path vendor/bundle

(この bundle install --path vendor/bundle で、再びrails(及び関連Gem)がインストールされます。)

うまくいっていれば、以下のコマンドでローカルサーバーが立ち上がるはずです

bundle exec rails server

 

コメント

タイトルとURLをコピーしました