💎
rubyごと入れ直そうとrbenv uninstall x.x.xをしようとしたら大量のPermission deniedが出た
事象
Flutterアプリの環境構築をしようとしたらbundle installがこけ、以下のようなエラーが無数に出た
An error occurred while installing security (0.1.3), and Bundler cannot continue.
In Gemfile:
fastlane was resolved to 2.219.0, which depends on
security
前提
- Apple M3 Pro 2023
- gem/bundle/ruby/rbenvいずれのバージョンも動作している他の人と揃っている
$ rbenv --version
rbenv 1.2.0
$ ruby --version
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin23]
$ gem --version
3.4.10
$ bundle --version
Bundler version 2.4.13
やったこと
- とりあえずrubyごと入れ直すかと思い、
rbnev uninstall 3.2.2
を実行すると、無数のgemのPermission deniedが表示されて失敗 - rbenvごと消せばどうにかなると思い、brewからrbenvを消して入れ直し、再度
rbenv install 3.2.2
とbundle install
を実行するが、失敗
解決と原因
おそらくこのissueと同じだった
一度でも sudo gem install hoge
のようにroot権限でgem installを実行してしまうと、gemのファイル群にroot権限が付与され、root権限で実行する他のコマンド(rbenv uninstallもこれにあたると思われる)からは削除できなくなってしまう模様
多分一回くらいは過去に実行している気がする。。
brew uninstall rbenv
でrbenvごと消した時はエラーが出なかったので気付けなかった
上のissueの通り(書いてあるコマンドは違うが)、sudo権限でgemのファイル群を消し去ってからやり直すことでbundle installが通った
sudo rm -rf "$(rbenv prefix 3.2.2)"
Discussion