bundle updateでPermission deniedが出た時の対応

bundle updateでPermission deniedが出た時の対応メモ

エラー内容

$ bundle update
Fetching nokogiri 1.8.3 (was 1.8.2)
Installing nokogiri 1.8.3 (was 1.8.2) with native extensions
Errno::EACCES: Permission denied @ dir_s_mkdir - /Users/{username}/.rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-16/2.4.0-static/nokogiri-1.8.3
An error occurred while installing nokogiri (1.8.3), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.8.3'` succeeds before bundling.

原因

過去にsudoをつけてgemをinstallしていたため書き込み権限がなかった

本当ならば、次のディレクトリ「/Users/(ユーザ名)/.rbenv/versions」配下にあるものは全てユーザーアカウントの権限になるべきなのですが、そのディレクトリの中のある幾つかのファイルに書き込む権限がないというのが問題でした。

参考:Rails cが実行不可能、Permission denied @ rb_sysopen – /Users/…の対応策

対応

ディレクトリの所有者をユーザー権限に変更

$ sudo chown -R {username}:staff /Users/{username}/.rbenv

参考