LoginSignup
1
4

More than 5 years have passed since last update.

rbenvを使った場合、複数環境のRuby+Railsの組み合わせはどうインストールされるのか

Last updated at Posted at 2017-07-13

実行条件

 rbenvはインストールされていないがrubyをひとつもインストールしない状況から始める。

rubyが内にもインストールされていない環境を確認
>pwd
 /(インストールDir)/.rbenv

 >cd versions
 >ls
          #(何も出力されない)

1.rubyその1をインストール

rbenvでインストール
>rbenv install ruby -v 2.3.0

2.rubyその1のインストール先を確認する

確認のコマンド
>cd  /(インストールDir)/.rbenv/versions
>ls
2.3.0     #( ディレクトリができていることを確認)

3.使用するrubyを指定する

globalコマンド
>rbenv global 2.3.0
>ruby --version
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
( rubyの確認をした)

4.インストール直後の上のフォルダを見てみる。
rbenvで管理されているrubyのgemは
バージョンごとに以下の形式のように管理されているようだ。

/(インストールDir)/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems
中身を確認
ls
did_you_mean-1.0.0  net-telnet-0.1.1    rake-10.4.2  test-unit-3.1.5
minitest-5.8.3      power_assert-0.2.6  rdoc-4.2.1

5.一先ずrailsを入れてみる。

gemからrailsを入れてみる。
 gem install rails -v 4.2.3

6.バージョンの確認

rails --version
Rails 4.2.3 #人によってはメッセージが出るかも

これがどこに入ったのか

gemの格納先を確認する。
>cd /(インストールDir)/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems
>ls
actionmailer-4.2.3           minitest-5.8.3
actionpack-4.2.3             net-telnet-0.1.1
actionview-4.2.3             nokogiri-1.8.0
activejob-4.2.3              power_assert-0.2.6
activemodel-4.2.3            rack-1.6.8
activerecord-4.2.3           rack-test-0.6.3
activesupport-4.2.3          rails-4.2.3 <--(コレ)
arel-6.0.4                   rails-deprecated_sanitizer-1.0.3
builder-3.2.3                rails-dom-testing-1.0.8
bundler-1.15.1               rails-html-sanitizer-1.0.3
concurrent-ruby-1.0.5        railties-4.2.3
did_you_mean-1.0.0           rake-10.4.2
erubis-2.7.0                 rdoc-4.2.1
globalid-0.4.0               sprockets-3.7.1
i18n-0.8.6                   sprockets-rails-3.2.0
loofah-2.0.3                 test-unit-3.1.5
mail-2.6.6                   thor-0.19.4
mime-types-3.1               thread_safe-0.3.6
mime-types-data-3.2016.0521  tzinfo-1.2.3
mini_portile2-2.2.0

と確認できます。

7.rubyその2をrbenvで追加インストール

rubyのバージョンを指定してインストール
rbenv install -v 2.4.1

8.バージョンの確認

rubyのバージョンを確認する
rbenv global 2.4.1 #rubyのバージョンを切り替える
ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

9.gemのインストール先を確認
gemのインストール先を確認する。
(細かいバージョンがディレクトリで違っているのが気になるが…)

gemの格納先を確認する。
>cd /(インストールDir)/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems
>ls
did_you_mean-1.1.0  net-telnet-0.1.1    rake-12.0.0  test-unit-3.2.3
minitest-5.10.1     power_assert-0.4.1  rdoc-5.0.0   xmlrpc-0.2.

10.railsその2をインストール

gemでバージョンを指定してrailsをインストール
gem install rails -v 5.1.0

11.バージョンの確認をする。

rails --version
Rails 5.1.0 

gemsの状態はどうなったか。

gemの格納先を確認する。
>cd /(インストールDir)/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems
>ls
actioncable-5.1.0      i18n-0.8.6                   rails-dom-testing-2.0.3
actionmailer-5.1.0     loofah-2.0.3                 rails-html-sanitizer-1.0.3
actionpack-5.1.0       mail-2.6.6                   railties-5.1.0
actionview-5.1.0       method_source-0.8.2          rake-12.0.0
activejob-5.1.0        mime-types-3.1               rdoc-5.0.0
activemodel-5.1.0      mime-types-data-3.2016.0521  sprockets-3.7.1
activerecord-5.1.0     mini_portile2-2.2.0          sprockets-rails-3.2.0
activesupport-5.1.0    minitest-5.10.1              test-unit-3.2.3
arel-8.0.0             net-telnet-0.1.1             thor-0.19.4
builder-3.2.3          nio4r-2.1.0                  thread_safe-0.3.6
bundler-1.15.1         nokogiri-1.8.0               tzinfo-1.2.3
concurrent-ruby-1.0.5  power_assert-0.4.1           websocket-driver-0.6.5
did_you_mean-1.1.0     rack-2.0.3                   websocket-extensions-0.1.2
erubi-1.6.1            rack-test-0.6.3              xmlrpc-0.2.1
globalid-0.4.0         rails-5.1.0 <--(コレ)

12,rbenvを切り替えるとrailsのバージョンはどう変わるか

rbenvの切り替えとバージョンの確認
>rbenv global 2.3.0
>rails --version
Rails 4.2.3

>rbenv global 2.4.1
>rails --version
Raisl 5.1.0

rbenvをするとrailsのバージョンも変わる。

結論

rbenvを使用した場合のrailsのインストール先は
rbenv globalで指定しているrubyのversionsの下に
次のようにインストールされる

/(インストールDir)/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rails-4.2.3
/(インストールDir)/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rails-5.1.0

ということでrbenvに入れたrubyのバージョン単位で
ruby+railsのバージョンの組み合わせを指定して開発できそう。
railsを複数サービス立てたい場合はこれらのインストールディレクトリを
指定知れば、複数のWEBricksをひとつのサーバーで実現できるかも。
(Dockerコンテナでやればいいじゃん。その意見はごもっとも
 ただLinuxのOSが古いとDocker入れられないし…。)

課題

ruby1 vs railsN
の指定管理方法は今後確認する。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4