#はじめに
環境構築系のエラーは原因が掴みにくい上に、誤って設定を変更してしまったら、迷宮入りしてしまいそうでヒヤヒヤします。
本記事では、bundle installしようとした時に発生したエラーの解決プロセスです。
ただし、エラーはエラーに至るまでの、経緯や環境によって様々です。本記事も参考程度にしてください。
#エラー
Errno::EACCES: Permission denied @ dir_s_mkdir -
特に、このエラーの解決方法は状況によって様々だと思いますが、私の場合は「権限」の設定が問題でした。
#結論
以下のコマンドで権限の変更をする事で解決する事ができました。
sudo chown -R [ユーザー名] /Users/[ユーザー名]/.rbenv
Password: (パスワードを入力)
#環境
macOS Catalina バージョン 10.15.7
Homebrew 2.7.1
rbenv 1.1.2
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]
gem 3.2.4
Bundler version 2.1.4
#エラーの詳細
bundle installをすると以下のエラーが発生しました。
Errno::EACCES: Permission denied @ dir_s_mkdir -
/Users/[ユーザー名]/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-19/2.6.0/bindex-0.8.1
An error occurred while installing bindex (0.8.1), and Bundler cannot
continue.
Make sure that `gem install bindex -v '0.8.1' --source 'https://rubygems.org/'`
succeeds before bundling.
以下の2つに注目しました。
Errno::EACCES: Permission denied @ dir_s_mkdir - /Users/[ユーザー名]/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-19/2.6.0/bindex-0.8.1
ファイルのアクセスが拒否されたました。
Make sure that gem install bindex -v '0.8.1'
gem bindex を確認して欲しい。
調べると、このファイルにアクセスする権限がない事が原因らしく、結論、対応策は以下の二つありました。
1、sodu コマンドで強制的にする。
2、権限の設定を変更する。
どうやら権限の設定がroot
に変更されているらしく、これを[ユーザー名]
に変更しなければならないようでした。
権限を変えた事はなかったのですが、sudo
コマンドを使った時などでも設定が変わるそうです。
今後のことも考え権限の設定を変更する事にしました。
#行ったこと
先ず、権限がどうなってるか調べました。
ls -al
コマンで調べる事ができますが、その後にファイル名を記述する事で、指定のファイルの状況がわかります。
Make sure that gem install bindex -v '0.8.1'
といわれてたので、周辺のファイルを調べてみました。
ls -al /Users/[ユーザー名]/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-19/2.6.0/
total 0
drwxr-xr-x 6 root staff 192 Dec 30 07:24 .
drwxr-xr-x 3 root staff 96 Dec 29 16:31 ..
drwxr-xr-x 5 root staff 160 Dec 30 07:24 bcrypt-3.1.16
drwxr-xr-x 6 root staff 192 Dec 29 16:32 nio4r-2.5.4
drwxr-xr-x 6 root staff 192 Dec 29 16:32 nokogiri-1.10.10
drwxr-xr-x 5 root staff 160 Dec 29 16:32 websocket-driver-0.7.3
確かにrootになってる。
以下のコマンドで権限を変更できます。
私は.rbenvを使用してるので、その配下を丸ごと変更する事にしました。
sudo chown -R [ユーザー名] /Users/[ユーザー名]/.rbenv
Password: (パスワードを入力)
ls -al
コマンドで確認します。
ls -al /Users/[ユーザー名]/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-19/2.6.0/
total 0
drwxr-xr-x 6 [ユーザー名] staff 192 Dec 30 07:24 .
drwxr-xr-x 3 [ユーザー名] staff 96 Dec 29 16:31 ..
drwxr-xr-x 5 [ユーザー名] staff 160 Dec 30 07:24 bcrypt-3.1.16
drwxr-xr-x 6 [ユーザー名] staff 192 Dec 29 16:32 nio4r-2.5.4
drwxr-xr-x 6 [ユーザー名] staff 192 Dec 29 16:32 nokogiri-1.10.10
drwxr-xr-x 5 [ユーザー名] staff 160 Dec 29 16:32 websocket-driver-0.7.3
変更されてました。
bundle installをします。
bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
.
.
.〜省略〜
.
.
Bundle complete! 26 Gemfile dependencies, 92 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
いつもの読み込みが始まり無事解決しました!!
#最後に
同じ様にエラーで悩んでる方々の助けになれば幸いです。
#参考