【Ruby】gemをインストールできないときの対処法

gem をインストールしようとしたら

You don’t have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

とエラーが出てしまいました。

要するに Mac OS のシステムで使ってる Ruby を参照してるので、
インストールなどの書き込み権限がありませんよ。

…ということみたいです。

スポンサーリンク

どの Ruby を参照しているか確かめる。

試しにターミナルから

$ which ruby

とか

$ which gem

とか打ち込んでみると

/usr/bin/ruby
/usr/bin/gem

とシステムのパスが返ってきます。

過去記事で書いたとおり
私は rbenv で Ruby のバージョンを管理してるので、

【Ruby】MacでRubyのインストール&バージョンを変更する方法
最新版のRubyを使いたくなったので、Rubyのインストールやバージョン管理するためにMacにHomebrewをインストールしました。その時の覚え書き。

本来は

/Users/○○/.rbenv/shims/ruby

を参照している必要があります。

rbenv で 管理している Ruby を参照するようにする

というわけで参照先を変更します。
ターミナルで以下を打ち込むと

$ rbenv init

以下のように表示されます。

# Load rbenv automatically by appending
# the following to ~/.bash_profile:eval “$(rbenv init -)”

で、この後 ~/.bash_profile に
eval “$(rbenv init -)” を追記するのですが、

私は vim がよくわからんので、
使い慣れてるテキストエディタの VS Code で編集しました。

ターミナルから、vim で編集するって方は

$ vim ~/.bash_profile

テキストエディットで開く! って方は

$ open ~/.bash_profile

VS Code で編集したい! って方は

$ code ~/.bash_profile

Atom を使うって方は

$ atom ~/.bash_profile

と入力してください。
.bash_profile が開いたら

eval "$(rbenv init -)"

を下の方にコピペします。

ちなみにコピペ後の.bash_profileは、
私の場合はこんな感じです。

# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH=”/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}”
export PATH
# rbenv
eval “$(rbenv init -)”

最後の方にちょこんと入れてあります。

確認

無事パスが通ったか、確認。
ターミナルにまた以下のコマンドを打ち込みます。

$ which ruby
$ which gem

これでそれぞれ

/Users/○○/.rbenv/shims/ruby
/Users/○○/.rbenv/shims/gem

と返ってきたら成功です。

原因

明らかに、これですね↓

【Ruby】ターミナルから bash: eval: line ホニャララってエラーが消えなくなったときにした対処法
最近ターミナルを立ち上げると必ず冒頭にbash: eval: line 21: syntax error near unexpected token `ruby'bash: eval: line 21: `} ruby -v'っ...

ターミナルに変な表示が出るようになって

eval "$(rbenv init -)"

を含む行をいくつかバッサリ削除して爽快感を満喫したせいです。
間抜けですが、またひとつ勉強になりました。

参考リンク gem installでpermissionエラーになった時の対応方法 – Qiita
参考リンク MacのターミナルでRubyをバージョンアップする方法 – Qiita
参考リンク Ruby – rubyの環境構築ができない|teratail

Digiprove sealCopyright protected by Digiprove © 2020

コメント