下手の横好き

文系卒エンジニアのしがない技術ブログ

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

参考

teratail.com

qiita.com