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
コメント