Help us understand the problem. What is going on with this article?

rails rubyがインストールまたはバージョンアップ出来なかった場合の対応

僕自身ドットインストールを使ってRubyOnRaisの学習をしようと思った時インストールエラーが起きました。

そのときの対応策(解決方法)を書き込んで行きます。
その前にまだまだ初学者ですのでそちらは把握よろしくお願い致します。

1 RubyOnRaisのバージョン確認

ターミナル.
$ rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails


このシステムにレールは現在取り付けられていない。
最新バージョンを取得するには,次のように入力します。

$sudoの宝石取り付けレール

その後,"rails"コマンドを再実行できます。


っと出てきました。
そこで指示通り
$ sudo gem install rails
を入力してみました。

ターミナル.
$ sudo gem install rails
Password:〇〇
ERROR:  Error installing rails:
    zeitwerk requires Ruby version >= 2.4.4.

エラー: レールの取り付けエラー:
zeitwerkはRubyバージョン>=2.4.4が必要です。


っと言う事でした。

RubyOnRaisの前にruby自体のバージョン低いのがまず問題でしたのでアップデートしていきます。
その前にバージョンを確認することにしました。

2 Rubyのバージョン確認

ターミナル.
$ rbenv install --list
-bash: rbenv: command not found


-bash: rbenv: コマンドが見つかりません。


まずバージョン見れないですね、
そこでbrewのバージョンをアップデートしようと思いました。

ターミナル.
brew upgrade rbenv ruby-build
-bash: brew: command not found


エラーでこれも出来ず、


まずその前にHomebrewのrbenvが入ってないのかな?
っと思ったのでインストールします。

3 Homebrewダウンロード

Homebrewの公式サイトからターミナルに入力する部分を引っ張ってきてインストール。
ダウンロードは公式サイトを確認してください
https://brew.sh/index_ja.html

ざーっと文字が出まくって無事インストールが終わりました。

4 rbenvをインストール

次にrbenvをインストールしていきます。
rubyのversion管理を手伝ってくれるイケてるヤツらしいです。

ターミナル.
brew install rbenv ruby-build

わーーーーって文字がいっぱい出てきます笑
結構時間かかります、、
完了しました。
次にインストールするバージョン確認

ターミナル.
rbenv install -l

ここでも凄いいっぱい文字出てきますが落ち着いて
version指定してinstall

ターミナル.
rbenv install 2.5.1

rbenvでversion管理しちゃう
ターミナル.
rbenv global 2.5.1

環境のversion確認

ターミナル.
rbenv versions
system
* 2.5.1 (set by /Users/[user_name]/.rbenv/version)

(バージョンが変わらない場合)

上記でバージョンが変わっていなければ
rubyの場所を確認してください

ターミナル.
$ which ruby
/usr/bin/ruby
rbenvでRubyをバージョンアップする場合、
/Users/ユーザー/.rbenv/shims/ruby
を参照している必要があるので変更していきます。

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.bash_profile:

eval "$(rbenv init -)"

eval "$(rbenv init -)"をコピーして~/.bash_profileに追記します

ターミナル.
$ vi ~/.bash_profile

・
・
・
Swap file "~/.bash_profile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort: 

編集するので eキーをタイプ
vim画面に入ります。

vimについて
vim画面では「コマンドモード」と「挿入モード」があり、
最初はコマンドモードになっています。

編集するには挿入モードにする必要があるので
iキーかaキーを押すと、最下行に

-- INSERT --
と表示されます。これで挿入モードになっています。

先ほどコピーしたeval "$(rbenv init -)"を追記したら、
escキーを押してコマンドモードに戻ります。
:wqと入力してenterすると編集内容を保存して終了します。(カーソルが画面のどこにあっても大丈夫です。)

ちなみに、
保存せずに強制終了する場合は:q!と入力します。
もしless画面に入ってしまった場合はqで終了してください。

再度確認
元の画面に戻ったらまず変更を反映します。

ターミナル.
$ source ~/.bash_profile

再度Rubyのバージョンを確認

ターミナル.
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]

指定バージョンに変更されました。

5Ruby RubyOnRaisのダウンロード

そして1に戻って
エラーが起きていた入力を再度すると、、

ターミナル.
sudo gem install rails

しっかりダウンロード出来ました、

そしてRuby on Railsのインストール

ターミナル.
gem install rails -v 5.1.3 --no-document

ダウンロード出来ました

流れとしては
Raisバージョン確認出来ない/rubyのバージョンが低い/rubyアップグレードの為にHomebrewとbenvをインストール/rubyバージョンアップ/Raisインストール
ですね!

やり方として遠回りになったかもしれませんがしっかり対応出来たのでよかったです^^

まだまだ初学者ですので間違ってる可能性があります。
もし間違っている部分がありましたら指摘いただけるととてもありがたいと思いますのでその時はよろしくお願い致します。
長文になりましたがありがとうございました。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away