sdkmanのinit.shでエラー出てた
Gradleを使うときに
sdkmanを使って、Gradleをインストールしたのですが
インストール後にsource "/Users/yuzu/.sdkman/bin/sdkman-init.sh"
を
.bashrc
だったり.zshrc
にインストールに書いてねって言われて書きますよね
書いてからターミナルを立ち上げると
/Users/yuzu/.sdkman/bin/sdkman-init.sh:145: file exists: /Users/yuzu/.sdkman/var/version /Users/yuzu/.sdkman/bin/sdkman-init.sh:145: file exists: /Users/yuzu/.sdkman/var/version
ってエラーが毎回の用に出るのをなんとかしたくて調べた
原因
問題の行を見てみると
echo ${SDKMAN_REMOTE_VERSION} > "$SDKMAN_VERSION_TOKEN"
バージョン情報をリダイレクトで書き込んでる
自分が使ってるzshはデフォルトでリダイレクトによる上書きを禁止してるらしい
cd ~/ touch test.txt echo "hoge" > test.txt # error: file exsits
解決
解決作になってるかはわかりませんが
.zshrc
に上書きを許可する設定を書く
# 上書き禁止解除 setopt clobber
これをsource "/Users/yuzu/.sdkman/bin/sdkman-init.sh"
が
書いてる行の前に設定するようにすれば出なくなりました