こんにちは。今日は6月6日、D-dayだった日です。そんな日にエラーを出したのでメモ。
rbenv で Ruby のバージョンを管理していて、rbenv でインストールした別の Ruby のバージョンを切り替えた後に gem install bundler
しようとしたら Permission denied @ rb_sysopen
のエラーが出てしまいました。
rbenv でインストールしたものにパーミッションがおかしいモノがある
一応 通常通り rbenv でインストールしたものが /Users/{user_name}/.rbenv/
内にあるか確認します。
$ which ruby /Users/{user_name}/.rbenv/shims/ruby $ which gem /Users/{user_name}/.rbenv/shims/gem $ rbenv versions system 2.5.1 * 2.5.5 (set by /Users/{user_name}/.rbenv/version)
rbenv でインストールしたものが使われています。
どこかで system のものと間違って sudo gem install
などで sudo
でインストールしたものがあり、ユーザーにパーミッションがないディレクトリ / ファイルが出来てしまっているのが原因な可能性が高そうです。(つまり自分のせい…)
rbenv のディレクトリのパーミッションをなおす
$ sudo chown -R {user_name}:staff /Users/{user_name}/.rbenv
パーミッションの確認
$ cd ~/User/.rbenv $ ls -la total 8 drwxr-xr-x 5 {user_name} staff 160 6 9 2018 . drwxr-xr-x+ 70 {user_name} staff 2240 6 6 17:58 .. drwxr-xr-x 75 {user_name} staff 2400 6 6 18:37 shims -rw-r--r-- 1 {user_name} staff 6 6 4 10:21 version drwxr-xr-x 4 {user_name} staff 128 5 27 15:25 versions
ユーザー名が表示されていればOK
gem のアップデートと bundler の再インストール、
$ gem update $ gem install bundler
エラー無く実行されればOK 🎉
教訓
rbenv で新ストールした Ruby を使っている時は sudo gem install
を使ってはいけない。
[参考]
- gem install rails でハマった話 - Qiita
- Rails cが実行不可能、Permission denied @ rb_sysopen – /Users/…の対応策 – 私たちの未来への案内図
- gem (Rubygems) のコマンドまとめ - Qiita
スラスラ読める Rubyふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,高橋征義
- 出版社/メーカー: インプレス
- 発売日: 2019/03/15
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
バンド・オブ・ブラザース コンプリート・ボックス(5枚組) [Blu-ray]
- 出版社/メーカー: ワーナー・ブラザース・ホームエンターテイメント
- 発売日: 2015/11/03
- メディア: Blu-ray
- この商品を含むブログを見る
D-dayといえば バンド・オブ・ブラザース 時々アマプラで見返してしまう。