【環境構築】bundle install時のエラー　Errno::EACCES: Permission denied @ dir_s_mkdir -

#はじめに
環境構築系のエラーは原因が掴みにくい上に、誤って設定を変更してしまったら、迷宮入りしてしまいそうでヒヤヒヤします。
本記事では、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　を確認して欲しい。


調べると、このファイルにアクセスする権限がない事が原因らしく、結論、対応策は以下の二つありました。
１、sodu　コマンドで強制的にする。
２、権限の設定を変更する。

どうやら権限の設定が`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.
```

いつもの読み込みが始まり無事解決しました！！


#最後に
同じ様にエラーで悩んでる方々の助けになれば幸いです。





#参考

https://dara-blog.com/about-rails-error01

https://qiita.com/Ryosci/items/e364e181ced7fbd5e239