gem install rails を実行時の Gem::FilePermissionError を解決する (Railsチュートリアル 1章)


自分がrailsチュートリアルを進めていく上で、発生したエラーを記録していきます。
ハードはMacBook Air, 開発環境はVScodeを用いています。

railsチュートリアル1章 1.2.2 Railsをインストールする

2020.7 現在は、rails6が最新版ですが、railsチュートリアルの無料版はrails5に対応しているので、rails5をインストールします。

rubyはgemコマンドを用いてインストールします。

$ gem install rails -v 5.1.6

gem install を実行する場所に関して、私はホームディレクトリで実行しました。($ cd ~ もしくは cd を実行すると移動できます。)色々調べても、実行場所について記述している記事を見つけることができませんでした

エンジニアは知っていて当然? 
*豆知識コーナー*

ここで、gemってなんだ?と感じる人が多いと思います。私もその一人です。
調べてみると、「gemはrubyのパッケージ(ライブラリ)です。」と書いてあります。
私は、railsなどの色々な機能を詰め合わせで入れることができる入れ物のことをgemといい、今回はそこにrailsを入れるのかなあ、とぼんやりイメージしています。
(間違っていたら指摘していただけると助かります)
(参考:https://techplay.jp/column/529

話を戻して、先ほどのコマンドを実行すると、次のようなエラーが発生します。

$ gem install rails -v 5.1.6

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

これは、権限がありませんよ!というエラーです。

MacOSには管理者として権限が与えられたユーザー以外に、システム上重大な変更を許さないという機能があります。これによってブロックされてしまっている状態なのでエラーが発生しています。

そこで、sudoというコマンドを追加します。

$ sudo gem install rails -v 5.1.6

sudoコマンドによって、Macがコマンドを実行したユーザーが管理者権限を持っているかどうか(パスワード設定済のアカウントかどうか)を判断して、管理者権限を持っていた場合、コマンドが実行されます。

その際、パスワードの入力を求められるので、パソコンにログインする際のパスワードを入力しましょう。


無事にインストールが完了しました!

役に立ったら是非LGTMボタンをポチッと押していただけると嬉しいです。
一緒に Rails学習 頑張りましょう!