Skip to content

asdf エラー: no plugin named completion

問題の概要

source ~/.zshrc を実行した際に、以下のような asdf バージョンマネージャーからのエラーが発生する場合があります:

zsh
Unknown command: `asdf completion zsh`
No plugin named completion

このエラーは、oh-my-zsh のプラグインとして plugins=(asdf) を設定している環境で発生します。asdf は $HOME/.asdf にインストールされており、特に最近設定を変更した覚えがない場合でもこの問題が発生することがあります。

原因

この問題の主な原因は、oh-my-zsh の最新バージョンと asdf の古いバージョン間の互換性の問題です。

特に、oh-my-zsh の92da310 コミット以降、asdf v0.15.x 以前のバージョンでは asdf completion zsh コマンドが正しく動作しなくなりました。

解決方法

方法1: asdf のアップグレード(推奨)

asdf を最新バージョン(v0.16.3 以上)にアップグレードするのが最も確実な解決策です。

zsh
# Homebrew でインストールしている場合
brew upgrade asdf
zsh
# asdf リポジトリから直接更新
asdf update
zsh
# リリースページから最新版をダウンロード
# https://github.com/asdf-vm/asdf/releases

方法2: v0.16 へのアップグレードガイドに従う

v0.15.x 以前からアップグレードする場合は、公式のアップグレードガイドに従うことをお勧めします:

  1. asdf 公式アップグレードガイドを参照
  2. 新しいバイナリをリリースページからダウンロード
  3. パスに追加
  4. 必要な環境変数を設定:
zsh
export ASDF_DATA_DIR="$HOME/.asdf"
export PATH="$ASDF_DATA_DIR/shims:$PATH"
  1. シムを再生成:
zsh
asdf reshim

方法3: 代替設定(一時的な解決策)

アップグレードが難しい場合は、oh-my-zsh の asdf プラグインを使用せず、直接 asdf を読み込む方法もあります:

zsh
# .zshrc から plugins=(asdf) を削除し、代わりに:
source "$HOME/.asdf/asdf.sh"

WARNING

これは一時的な解決策であり、asdf の最新機能や最適化を得るためには、やはりアップグレードすることが推奨されます。

確認方法

現在の asdf バージョンを確認するには:

zsh
asdf --version

正しくアップグレードされたか確認するには:

zsh
source ~/.zshrc
# エラーが発生しなければ成功

まとめ

no plugin named completion エラーは、oh-my-zsh と asdf のバージョン不一致が原因です。asdf を v0.16.3 以上にアップグレードすることで解決できます。

アップグレード後も問題が解決しない場合は、環境変数の設定やシムの再生成が必要な場合があります。asdf のバージョン管理ツールとしての機能を最大限に活用するためにも、定期的なアップデートを心がけましょう。