実行条件
rbenvはインストールされていないがrubyをひとつもインストールしない状況から始める。
>pwd
/(インストールDir)/.rbenv
>cd versions
>ls
#(何も出力されない)
1.rubyその1をインストール
>rbenv install ruby -v 2.3.0
2.rubyその1のインストール先を確認する
>cd /(インストールDir)/.rbenv/versions
>ls
2.3.0 #( ディレクトリができていることを確認)
3.使用するrubyを指定する
>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 install rails -v 4.2.3
6.バージョンの確認
rails --version
Rails 4.2.3 #人によってはメッセージが出るかも
これがどこに入ったのか
>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で追加インストール
rbenv install -v 2.4.1
8.バージョンの確認
rbenv global 2.4.1 #rubyのバージョンを切り替える
ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
9.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 install rails -v 5.1.0
11.バージョンの確認をする。
rails --version
Rails 5.1.0
gemsの状態はどうなったか。
>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 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
の指定管理方法は今後確認する。