RubyとRailsの複数バージョン共存可能なMac環境構築について
解決済
回答 1
投稿
- 評価
- クリップ 1
- VIEW 1,735
rbenvとbundlerを使用して、RubyとRailsの複数バージョン共存可能なMac環境の構築ができたのですが、疑問な点があり、アドバイスをいただきければと思い、投稿させていただいた次第です。
[行いたいこと:目的]
Mac OSX El Capitan に複数のRubyバージョンを切替えれるようにする。また、Railsについてもプロジェクト毎にRailsのバージョンを分けれるようにする。
直近のターゲットは、最新のRuby(2.3.1)をglobalに。Railsチュートリアル学習用にlocalには、Ruby 2.2.1をインストールする。Railsについては、チュートリアル用の環境(sample_app)にRails 4.2.2をインストールする。
[疑問なところ]
以下、記載の手順で行い、環境構築ができ、Rails起動まで確認したのですが、以下、疑問なところがあり、教えていただけませんでしょうか。
1.以下の手順だと、Ruby 2.2.1をlocalに適用するため、sampleディレクトリに適用(手順6.1)し、その後、Railsをローカルにインストールするために、sampleディレクトリにインストール(手順6.4)し、ails new sample_app を行い、sample_appディレクトリにRails環境を構築しました。(詳細は「[実施したこと]」の通りです。)
疑問1. ローカルディレクトリ環境にRailsプロジェクト毎にバージョンを変え、Railsをインストールするためには、ワンクッション(今回の場合で言えばsampleディレクトリ)にRubyと、一時的Rails環境を作成するしかないのでしょうか。sample_appディレクトリだけにする方法はないのでしょうか。
現状、~/sample/sample_appの構成で、sampleディレクトリにはsample_appだけがある状態です。この2階層を、~/sample_appだけの構成にできるようなインストールのやり方はないのでしょうか。
疑問2. 構築した環境にvendor/bundle/ruby/2.2.0 があるのですが、2.2.1バージョンではなく、2.2.0が適用されているのでしょうか。sample_app下でバージョンを確認( ruby -v)すると2.2.1でしたが。
お手数ですが、ご教授いただければ幸甚です。
[実施したこと]
以下の要領で実施しました。長文となり、恐縮ですが、ご参考まで。なお、Rails起動まで確認し、Railsの初期画面が表示されることを確認しました。
1.rbenvのインストール
$ brew install rbenv
2.PATHを通す
3.最新バージョン 2.3.1をインストール
$ rbenv install 2.3.1
4.デフォルトで利用するバージョンを指定
$ rbenv global 2.3.1
5.Railsチュートリアルで使用するバージョン2.2.1をインストール
$ rbenv install 2.2.1
6.ローカルディレクトリにRails環境を構築
6.1 Railsチュートリアル実施のため、ローカル環境にRuby2.2.1を利用のためのディレクトリを作成。
$ mkdir ~/sample
$ cd sample
6.2 使用するRubyのバージョン 2.2.1を指定
$ rbenv local 2.2.1
6.3 Bundlerをインストール
$ rbenv exec gem install bundler
$ rbenv rehash
6.4 Bundlerを使用しRailsアプリケーションを作成するために一時的にrailsをローカルにインストール
(1) Gemfile作成(以下のみ指定)
gem "rails", "4.2.2"
(2) Railsのインストール実施
$ rbenv exec bundle install --path vendor/bundle
6.5 Railsアプリケーションの新規作成
先にbundleでインストールしたgemパッケージを利用し、Railsアプリケーション「sample_app」を作成
(1) Railsアプリケーションの新規作成
$ rbenv exec bundle exec rails new sample_app --skip-bundle
(2) Bundlerを使用し一時的に作成したbundlerの環境とローカルのRailsを削除
$ rm -f Gemfile
$ rm -f Gemfile.lock
$ rm -rf .bundle
$ rm -rf vendor
6.6 Railsアプリケーションの環境セットアップ
(1) 新規生成したRailsアプリケーションディレクトに移動
$ cd sample_app
(2) (Gemfileの編集は必要に応じ別途行うこととし) Railsの標準gemのインストール実施。
$ bundle install --path vendor/bundle
6.7 Railsアプリケーションが問題なく起動されることを確認。
すみませんが、よろしくお願いいたします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
疑問1. ローカルディレクトリ環境にRailsプロジェクト毎にバージョンを変え、Railsをインストールするためには、ワンクッション(今回の場合で言えばsampleディレクトリ)にRubyと、一時的Rails環境を作成するしかないのでしょうか。sample_appディレクトリだけにする方法はないのでしょうか。
現状、~/sample/sample_appの構成で、sampleディレクトリにはsample_appだけがある状態です。この2階層を、~/sample_appだけの構成にできるようなインストールのやり方はないのでしょうか。
bundle install する際に --path=vender/bundle を指定しなければ、rbenv で指定した各バージョンの共通ディレクトリにある gem が利用されますので、プロジェクトごとに gem を入れ直す必要は無いはずです。そういうことで疑問の回答になってますか?
疑問2. 構築した環境にvendor/bundle/ruby/2.2.0 があるのですが、2.2.1バージョンではなく、2.2.0が適用されているのでしょうか。sample_app下でバージョンを確認( ruby -v)すると2.2.1でしたが。
末尾のバージョン(tiny)は無視されているようですので、2.2.0 〜 2.2.x でも .../2.2.0 になります。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.38%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/11/13 09:19
2016/11/13 09:26
どこに gem を入れるか、は --path vendor/bundle で指定しますが、『どれを』使うかと『どこを』使うか、は別の話です。
2016/11/13 14:22
2016/11/13 14:28
要は、要件次第だということです。
2016/11/13 17:57