【asdf】no such file or directory: /xxx/.asdf/asdf.sh

こんにちは、フリーランスエンジニアの太田雅昭です。

asdf

asdfは、node, php, などのバージョン管理ツールです。Macだとnodeなどはbrewでインストールするかと思いますが、これだとバージョンが固定されてしまいます。そのため、asdfなどを使用します。ちなみにasdf以外だと、Dockerでもプロジェクトごとにバージョンを変えれますね。

.asdf/asdf.shが見つからない

前のMacでFlutter開発をしていたのですが、少し前にPCを買い替えた時に環境は引き継がなかったので、今回Flutterをインストールしようとしました。Rubyのバージョンが低いと言われたので、asdfでRubyをバージョンアップしたのですが、globalで最新バージョンが適用されない。そこでasdf公式サイトに記載のあった、以下のラインを.zshrcに追記しました。

. "$HOME/.asdf/asdf.sh"

すると以下のエラーになりました。

no such file or directory: /xxx/.asdf/asdf.sh

確認すると確かにこのファイルは存在しません。なぜだろうと。公式サイトに記載のあるこのパスが存在しないのはなぜだろうと、GPT先生に聞いても解決しなかったのですが、原因はbrewでした。

今回asdfをbrewでインストールしていたのですが、そうするとパスがgitでインストールする場合と異なる様です。そして、公式サイトで紹介されていたのは、gitでインストールした場合のパスだったようです。

brewでasdfをインストールした場合の、正しいパスは以下になります。

. /opt/homebrew/opt/asdf/libexec/asdf.sh

これで動く様になりました。

余談

ドラッグストアってペットボトル安いのは、なぜなんでしょう。コンビニに比べてかなり安いですよね。収益を得る部分が違うのでしょうか。そういえば、コンビニコーヒーが安いのは、コーヒー以外で儲けているためだと聞いた様な。。。