macos
自分用のメモです
/usr/local/bin/rbenv-communal-gem-home を確認
mkdir: /usr/local/bin/../version_cache: Permission denied
/usr/local/bin/rbenv-communal-gem-home: line 21: /usr/local/bin/../version_cache/2.6.3: No such file or directory
となっていたので、rbenv-communal-gem-home をエディタに表示して確認してみる
$ open /usr/local/bin
# usr/local/binディレクトリをオープン
rbenv-communal-gem-home.
if [ "$1" = "--complete" ]; then
exec rbenv-versions --bare
fi
rbenv_version="${1:-$(rbenv-version-name)}"
if [ -L "$RBENV_ROOT/versions/$rbenv_version/lib/ruby/gems" ]; then
cachedir="${BASH_SOURCE%/*}/../version_cache"
cachefile="$cachedir/$rbenv_version"
if [ -f "$cachefile" ]; then
communal_version="$(cat $cachefile)"
else
mkdir -p "$cachedir"
communal_version="$("$RBENV_ROOT/versions/$rbenv_version/bin/ruby" -rrbconfig -e 'puts RbConfig::CONFIG["ruby_version"]')"
echo "$communal_version" > "$cachefile"
fi
echo "$RBENV_ROOT/gems/$communal_version"
else
exit 1
fi
こうなってた。すなわち
mkdir: /usr/local/bin/../version_cache: Permission denied
は、 mkdir -p "$cachedir" でディレクトリ作りたいけど、このgemにはその権限がない。だと思う。
/usr/local/bin/../version_cache/2.6.3: No such file or directory
は、 echo "$communal_version" > "$cachefile" の際に cachefileが存在しないために出てきたエラーだと思う。(cachedirが存在しない、作成できなかったため)
cachefileのパスに含まれているcachedirを有効にする
# cachedir="${BASH_SOURCE%/*}/../version_cache" を消して
cachedir="${BASH_SOURCE%/*}/../Cellar/rbenv-communal-gems/1.0.1_1/version_cache"