こんにちは, Rubyほぼ初心者の自分が環境構築を行ってる際にぶち当たったエラーに対する対処法をお伝えします.
今回の環境構築は次のような順番で行いました.今回エラーがでたのはこのうちの3の部分です.
環境構築手順
- rbenvのインストール
- rbenv経由でrubyをインストール
- bundlerをインストール
bundlerのインストールは次のコマンドで行います.
(base) ****-MacBook-air:~ user$ gem install bundler
ところがこの操作に対して次のようなエラーが出てきてしまいました.
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
You don't have write permissionsのwrite permissionというのは専門用語で書き込み許可という意味だそうです.
つまり書き込みの許可がいるみたいです.
つまり,この操作はuserの権限を越えたことをやろうとしている??
ここでgem,rubyのPATHを確認してみます.
(base) ****-MacBook-air:training user$ which gem
/usr/bin/gem
(base) ****-MacBook-air:training user$ which ruby
/usr/bin/ruby
usrディレクトリはuserディレクトリのさらに上の階層であり,userの権限ではアクセスできない部分です.したがって,今回は,userの身分でありながら,上の階層のディレクトリにアクセスしようととしたことが原因であったとわかりました.
そもそもこのような事が起きたのは, gem install bundler をした際に,rbenv側のrubyやgemではなく, システム側(usr/bin)のruby,gemを使ってることが原因でした.
なので以下のコマンドでPATHを設定し直します.
(base) ****-MacBook-air:training user$ export RBENV_ROOT="${HOME}/.rbenv"
(base) ****-MacBook-air:training user$ if [ -d "${RBENV_ROOT}" ]; then export PATH="${RBENV_ROOT}/bin:${PATH}"; eval "$(rbenv init -)"; fi
完了したら,もう一度rubyとgemのPATHを確認します.
(base) ****-MacBook-air:training user$ which ruby
/Users/user/.rbenv/shims/ruby
(base) ****-MacBook-air:training user$ which gem
/Users/user/.rbenv/shims/gem
これで現在,rubyとgemはrbenvのものを参照してることがわかります.
このあと
(base) ****-MacBook-air:~ user$ gem install bundler
をもう一度試してみたところうまくいきました!