質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

5287閲覧

ターミナルでRailsをインストールしようとすると、エラーになってしまう

asm_t

総合スコア14

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/01/26 14:31

前提

プログラミング初心者です。
railsのターミナルへのインストールを試みました。
rails -vを実行して確認すると、
以下のようなエラーが表示されてしまいます。

解決法をご教示いただけますと幸いです。

発生している問題・エラーメッセージ

Rails is not currently installed on this system. To get the latest version, simply type: $ sudo gem install rails You can then rerun your "rails" command.

上記エラー解消のため試してみたこと

ネットの記事など調べたところ、
「以下①②のコマンドを打てばうまくいった」という情報があったため
以下試してみたところ、今後は違うエラーになってしまいました。

エラー解消のため試してみたコマンド

①% gem install railties && rbenv rehash ②% brew install rbenv ruby-build

上記実行したところ発生してしまった問題・エラーメッセージ

①% gem install railties && rbenv rehash ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory. ユーザー名 ~ ②% brew install rbenv ruby-build Updating Homebrew... Warning: rbenv 1.1.2 is already installed and up-to-date To reinstall 1.1.2, run `brew reinstall rbenv` Warning: ruby-build 20210119 is already installed and up-to-date To reinstall 20210119, run `brew reinstall ruby-build`

補足情報(FW/ツールのバージョンなど)

ruby 2.6.3
macOs Catalina 10.15.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラー内容について

【1】

$ rails -v

はインストールされているRailsのバージョンを確認するコマンドです。
エラーメッセージでは、

Railsがインストールされていないので $ sudo gem install rails コマンドを入力してください。そうすればrailsコマンドが使えます。

と言われています。

【2】

$ gem install railties && rbenv rehash

は(Rubyの機能であるgemコマンドを使って)railtiesをインストールして、またrbenv rehashをしています。
rbenv rehashは成功するためのおまじないみたいに思っておいていいです。
エラーメッセージでは

/Library/Ruby/Gems/2.6.0のフォルダにあなたは書き込み権限が無いよ

と言われています。
確認してみましょう!

$ cd /Library/Ruby/Gems/

でフォルダを移動します。

$ ls -la

で/Library/Ruby/Gemsフォルダ内の一覧と各フォルダの権限が確認できると思います。

drwxr-xr-x 8 root wheel 256 Dec 14 2019 2.6.0

詳しくは割愛しますが、2.6.0のフォルダの管理者はrootで、管理者以外は書き込み権限が無いことが分かります。
この場合の解決策は、コマンドの前にsudoをつけると、管理者としてコマンドを実行できます。(フォルダの権限を変更する方法もあります)

【3】

$ brew install rbenv ruby-build

は(Homebrewのbrewコマンドを使って)rbenvとruby-buildをインストールするコマンドです。
これに対してはエラー(ERROR)は発生していません。警告(Warning)のみです。
警告の内容は

既にrbenvとruby-buildはインストールされています。再インストールする場合は、$brew reinstall rbenv ruby-buildしてください

と言われています。再インストールの必要はありません。

Railsのインストール手順について

どの段階でつまづいているのか、問題の切り分けをしていきましょう!

こちらのサイトの順番でrailsをインストールされているとすると、
https://railsgirls.jp/install

3-2. Homebrewをインストール
3-3. (Homebrewのbrewコマンドを使って)rbenvをインストール、ターミナル起動時にrbenvを初期化する設定(※1参照)
3-4. (rbenvを使って)Rubyをインストール
3-5. (rbenvを使って)デフォルトのRubyバージョンを設定(※2参照)
3-7. (Rubyの機能であるgemコマンドを使って)Railsのインストール
の順番を踏んでいると思います。

つまり、Railsをインストールするために、
・Railsはプログラミング言語のRubyで動くので、Rubyをインストールしなければならない
・フォルダごとに異なるバージョンのRubyが使えるようバージョン管理をしながらRubyをインストールするために、rbenvをインストールしなければならない
・rbenvをインストールするために、Homebrewをインストールしなければならない
という理由で上記の手順を踏んでいるわけです。

※1 (興味あれば読んでください)
echo 'eval "$(rbenv init -)"' >> /.zshrc
は、
/.zshrcのファイルに'eval "$(rbenv init -)"'というコードを書き込んでいます。
rbenvはターミナルを起動するごとに毎回 $ rbenv init をしないと、動作しません。毎回手動で入力するのは面倒なので、
~/.zshrcはターミナル(正確にはshell)の起動時、毎回読み込まれるので、ターミナルを起動する度に、$ rbenv initのコマンドが実行されるようになります。
source /.zshrc
/.zshrcファイルを再読み込みするコマンドです。これで、ターミナルを再起動しなくても、$ rbenv initが実行されます。

※2 (興味あれば読んでください)
rbenv global 2.7.0
はそのコンピューターの全ての場所でruby 2.7.0の適用を設定します。
rbenv local 2.7.0
なら、現在のフォルダとその下の階層のフォルダではruby 2.7.0の適用を設定します。
つまり、rbenv local で細かくフォルダごとのRubyのバージョンを設定することで、プロジェクトごとに異なるRubyバージョンが必要だったとしても切り替えて使えるようになります。

具体的な解決手順

まずは、インストールがどこまで進んでいるか一つずつ確認していきましょう!
手当たり次第に解決策を試すのではなく、問題の切り分けをしていくことが、解決への近道です!

3-2. Homebrewがインストールされているか?

$ brew -v

→ 「Homebrew 2.5.10」などのHomebrewのバージョンが表示されればOKです!

3-3. rbenvがインストールされているか?

$ rbenv -v

→ 「rbenv 1.1.2」などのrbenvのバージョンが表示されればOKです!

3-4. 3-5. Rubyがインストールされているか? Rubyのバージョンは指定した通りか?

$ ruby -v

→ 「ruby 2.6.1p33」などのRubyのバージョンが表示されればOKです!

3-7. Railsがインストールされているか?

$ rails -v

→ 「Rails 6.0.3.4」などのRailsのバージョンが表示されればOKです!

上記のどこかで、つまづいている場合は、
https://railsgirls.jp/install
を参考に、できていないところからインストール手順をやり直してください。

もし、RubyがインストールできていてRailsがインストールできていない場合は、

$ sudo gem install rails

を入力してください。
再度エラーが発生した場合は、そのエラー内容をコピペで教えてください。

追記

MacにはデフォルトでRubyがインストールされていますが、質問者さんはこちらのRubyを現在使ってしまっているようです。。。すいません、説明が不足しておりました
以下の内容ご確認ください。

MacのデフォルトでインストールされているRubyについて

$ which ruby

と入力してみてください
・/Library/Ruby
のような場合は、MacにデフォルトのRubyを使用している状態です。

・/Users/ユーザー名/.rbenv/shims/ruby
・~/.rbenv/shims/ruby
のような場合は、rbenvでインストールしたRubyを使用している状態です。

おそらく、/Library/Rubyと出力されたかと思います。

/ --- Application | -- System | -- Library --- Ruby ← MacにデフォルトのRuby | -- Volumes | -- Users --- ユーザー名 --- Desktop ← Mac起動時に見える画面 | -- Document | -- Music | -- .rbenv --- shims --- ruby ← rbenvでインストールされたRuby | -- versions ※ユーザー名のディレクトリ(ホームディレクトリ)は"~"で表現される。つまり、「/Users/ユーザー名/.rbenv/shims/ruby」と「~/.rbenv/shims/ruby」は同じ意味。

Macには予め、少し古いバージョンのRubyがインストールされています。

「じゃあ、改めてRubyをインストールしなくてもいいじゃん」と思われるかもしれませんが、このRubyはMac(つまり、パソコン本体)のシステムに影響を及ぼす可能性があり、ユーザーが設定をいじるのは良くないです。
(よく考えると、いじられたくないから、管理者以外が設定を変更できないように、gem install railties && rbenv rehashでパーミッションエラーを吐いていたのだと今になって気づきました。。。)

具体的な解決策

まずはhomebrewがインストールされているか確認しましょう

$ brew -v

次にrbenvがインストールされているか確認しましょう

$ rbenv -v

おそらく、ここでエラーが出ているのではないでしょうか?
そして、rbenv自体はインストールされているけど、「パスが通っていない」または「$ rbenv initのコマンドが入力されていない」ことが原因と思われます。

まずはパスが通っているか確認しましょう!

$ echo $PATH

/.rbenv/shims:/usr/local/bin:/usr/bin:/bin
のような文字が返ってきます。ここで、「
/.rbenv/shims」または「Users/ユーザー名/.rbenv/shims」の文字が含まれていない場合は、パスが通っていない(rbenvコマンドが読み込まれない)ことになります

「パスを通す」とは、パソコン(正確にはシェル)に読み込む先のファイルの場所を教えてあげることです。
$PATHという環境変数(設定値のようなものを保管する変数、この変数に値を入れるとはシェルに記憶されるイメージ)に読み込む場所を記述してあげることが「パスを通す」という意味です。
";"で区切って値を入れます。
/.rbenv/shims:/usr/local/bin:/usr/bin:/bin」の場合は、
/.rbenv/shims
・/usr/local/bin
・/usr/bin
・/bin
のフォルダを指していて、ターミナルで私たちがコマンドを打つと、シェルはこれらのフォルダの下の階層にあるファイルを探しに行き、一致するファイルのコードを実行します。

「~/.rbenv/shims」のパスを通すには

$ echo 'export PATH=$PATH:~/.rbenv/shims' >> ~/.zshrc

を実行します。
これは、/.zshrcのファイルに、「export PATH=$PATH:/.rbenv/shims」を書き込むコマンドです。
ちゃんと書かれているか、確認してみましょう!

$ cat ~/.zshrc

このコマンドで、/.zshrcのファイルに書かれている文字が出力されます。
ちゃんと、最終行に「export PATH=$PATH:
/.rbenv/shims」が書かれていればOKです。

また、ここに「eval "$(rbenv init -)"」が書かれているでしょうか?
書かれていなければ、次のコマンドで書き込みます。

$ echo 'eval "$(rbenv init -)"' >> ~/.zshrc

では、ちゃんと書かれているか、確認してみましょう!

$ cat ~/.zshrc

ちゃんと、最終行に「eval "$(rbenv init -)"」が書かれていればOKです。

設定が書けたら、~/.zshrcを再読み込みしましょう!

$ source ~/.zshrc

では、改めて、rbenvが使えるようになったか確認します。

$ rbenv -v

バージョンが表示されれば、OKです。
https://railsgirls.jp/install
の「3-4. rbenvを使ってRubyをインストール」からインストールを再開してください。

/.zshrc」と「/.bash_profile」「~/.bashrc」について

補足で、初学者が間違えやすい箇所として、「/.zshrc」と「/.bash_profile」または「~/.bashrc」のファイルがあります。

これらのファイルはどれも、ターミナルを立ち上げたときにシェルが読み込むファイルなのですが、シェルにもいくつかあり、それぞれ読み込むファイルが違います。

Macの場合多くの人はbashまたはzshというシェルを使用しています。

質問者さんは、macOs Catalinaを使っているので、デフォルトではzshが使われています。

現在どのシェルが使われているか確認するには、

$ echo $SHELL

とコマンドを打つと、zshなら/bin/zsh、bashなら/bin/bashが返ってきます。

zshの場合は、ターミナル立ち上げ時に「~/.zshrc」を読み込みます。

Bashの場合は、ターミナル立ち上げ時に「/.bash_profile」と「/.bashrc」を読み込みます。

ですので、パスを通す場合などは、~/.zshrcに書き込むようにしましょう!

また、ネットで記事を検索すると「/.bash_profile」や「/.bashrc」と書いてある記事がありますが、「~/.zshrc」と置き換えて実行するようにしましょう!

ターミナルの勉強について

ここら辺のターミナルの知識は、Linux標準教科書を読むと知識が体系化されて理解しやすくなると思います。
https://linuc.org/textbooks/linux/
時間がなければ、読むだけでも構わないので、一通り目を通すことをお勧めします。(第2章は読まなくていいと思います)

どうしても上手くいかない場合

先ほどの具体的な解決方法でもインストールができない場合は、rbenvをインストールし直すところからやってみと良いかと思います。

一度、rbenvをアンインストールします。

$ brew uninstall rbenv

その後は、https://railsgirls.jp/installの「3-3. rbenvをインストール」から再開してみてください。
/.bash_profile」は「/.zshrc」と置き換えて実行してください。

投稿2021/01/26 16:42

編集2021/01/28 07:45
obr-note

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asm_t

2021/01/27 13:47

obr-note様 いただいたアドバイスのとおり、 gem install railties && rbenv rehashの前にsudoをつけたところ、すんなりとインストールできました! 本当にありがとうございます。 ご説明がすごく分かりやすく、勉強になりました。 今後ともよろしくお願いいたします。
technocore

2021/01/27 22:08

>gem install railties && rbenv rehashの前にsudoをつけたところ、すんなりとインストールできました! お尋ねしますが、 なぜsudoをつけないとインストールできないのでしょうか?
obr-note

2021/01/28 07:36

technocoreさん、ご指摘ありがとうございます。 回答に追記したので、質問者さんは確認お願いします。
technocore

2021/01/28 07:46

>「~/.zshrc」と「~/.bash_profile」「~/.bashrc」について zshには「.zprofile」という設定ファイルがあります。
asm_t

2021/01/30 07:28

obr-note様 調べてみたところ、やはりMacにデフォルトでインストールされているRubyを使っていました! 教えていただいた手順どおりに進めた結果、無事に変更できました! ありがとうございます。 rbenv自体はインストールされているけど、「パスが通っていない」という状態だったのですね。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問