rbenvがrehash出来ないエラーを解決した話
環境
MacBook-Pro-2016:~ USER$ sw_vers ProductName: Mac OS X ProductVersion: 10.13.4 BuildVersion: ****** MacBook-Pro-2016:~ USER$ rbenv -v rbenv 1.1.1
事象
Railsで開発する為に、Homebrewでrbenvをインストールした。
MacBook-Pro-2016:~ USER$ brew install rbenv
今回はRuby2.5.1を使おうと思いインストール。
MacBook-Pro-2016:~ USER$ rbenv install 2.5.1 ruby-build: use openssl from homebrew Downloading ruby-2.5.1.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2 Installing ruby-2.5.1... ruby-build: use readline from homebrew Installed ruby-2.5.1 to /Users/USER/.rbenv/versions/2.5.1
すると、以下のエラーが発生。
rbenv: cannot rehash: /Users/USER/.rbenv/shims isn't writable
改めてrehashしてみてもダメ。
MacBook-Pro-2016:~ USER$ rbenv rehash rbenv: cannot rehash: /Users/USER/.rbenv/shims isn't writable
エラーメッセージから推察すると、書き込み権限がないらしい。
対処
chmod
で権限を変更する必要があると予想。
rbenvの権限を見に行ってみたところ。
MacBook-Pro-2016:~ USER$ ls -la ~/.rbenv/ total 0 drwxr-xr-x 4 USER admin 128 4 12 10:27 . drwxr-xr-x 57 USER admin 1824 4 12 10:36 .. drwxr-xr-x 9 root admin 288 4 12 10:29 shims drwxr-xr-x 5 USER admin 160 4 12 10:43 versions
drwxr-xr-x 9 root admin 288 4 12 10:29 shims
...(゚Д゚)
所有者がrootになってました。
別にsudo
で実行してもいいのですが、Railsで開発進める中で不便に感じる部分(特にDB周りとか)が出てきそうなのでささっと所有者変更。
MacBook-Pro-2016:~ USER$ sudo chown USER ~/.rbenv/shims/ MacBook-Pro-2016:~ USER $ ls -la ~/.rbenv/ total 0 drwxr-xr-x 4 USER admin 128 4 12 10:27 . drwxr-xr-x 57 USER admin 1824 4 12 10:36 .. drwxr-xr-x 9 USER admin 288 4 12 10:29 shims drwxr-xr-x 5 USER admin 160 4 12 10:43 versions
無事にrbenv rehash
出来ました。
MacBook-Pro-2016:~ USER$ rbenv rehash MacBook-Pro-2016:~ USER$ rbenv versions * system (set by /Users/USER/.rbenv/version) 2.5.1