【スポンサーリンク】

zshでエラーでbrewの更新が必要だった(compinit)

zshでエラーでbrewの更新が必要だった(compinit)
  • zshの自動補完機能に関するエラー「zsh compinit: insecure directories, run compaudit for list. 」が発生したため、解決方法を調べました。
  • compauditコマンドでパーミッションを確認し、chmodコマンドで修正を試みましたが、新たなエラーが発生しました。
  • Homebrew Caskの再インストールを行ったところ、無事にエラーが解決し、自動補完機能が正常に動作するようになりました。
\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. zshの自動補完機能に関するエラー

久々にnode.jsなどを更新したら、zshの自動補完機能に関するエラーが発生するようになりました。

Macのターミナルを起動すると、毎回 特定のディレクトリのパーミッションが適切でないという警告が表示されます。

zshの自動補完機能に関するエラー

zsh compinit:
insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

エラーの修正にしたコマンドは以下の通りです。

# ディレクトリのパーミッションを修正
chmod -R go-w /usr/local/share/zsh/
chmod -R go-w /usr/local/share/zsh/site-functions

# 自動補完キャッシュの削除
rm -f ~/.zcompdump
compinit

# brewの再インストール
brew cleanup
brew cask cleanup
brew uninstall --force brew-cask
brew update
brew upgrade
brew cleanup
brew cask install --force brew-cask

1-1. compinitのエラー

compinit

compinit は、zsh の自動補完機能を初期化するための関数です。
zsh でTAB キーを押すと、コマンドやファイル名の補完候補が表示されるようになるのは、compinitのおかげです。

compinit は、自動補完に必要な関数やデータを、指定されたディレクトリ(デフォルトでは、/usr/share/zsh/functions/Completion)から読み込み、~/.zcompdump というファイル名でキャッシュを作成します。

1-2. compaudit

エラーメッセージでは、「compaudit」というコマンドを実行するように指示しています。

このコマンドを実行すると、パーミッションが適切でないディレクトリのリストが表示されます。

compaudit
compaudit

compaudit は、自動補完に使用されるディレクトリやファイルのパーミッションを検査し、潜在的なセキュリティ上の問題を報告します。

パーミッションの修正には、「chmod」コマンドを使います。

chmod -R go-w /path/to/directory
chmodのオプション
  • 「-R」オプションは、指定したディレクトリとその下にあるすべてのファイルとディレクトリに対して、再帰的にパーミッションを変更するために使用します。
  • 「go-w」は、グループ(g)とその他のユーザー(o)の書き込み権限(w)を取り消す(-)ことを意味します。

2. Homebrew Cask

今度は、新たなエラーが発生しました。

Homebrew Caskに関連する自動補完機能に必要な「_brew_cask」が見つからないことを示しています。

Homebrew Cask

compinit:527:
no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask

Homebrew Caskが正しくインストールされているか確認するため、バージョン情報を確認しました。
ところが、brew caskは、brew <command> –caskと表記が変わっていました。

Homebrew Cask

Homebrew Caskは、macOSでアプリケーションをインストールするためのパッケージマネージャーです。

2-1. 自動補完機能に関連するキャッシュを削除

自動補完機能に関連するキャッシュファイルを削除し、再読み込みをします。

rm -f ~/.zcompdump
compinit

しかし、それでもエラーが解決しませんでした。

2-2. Homebrew Caskの再インストール

次に、Homebrew Caskの再インストールしました。

brew cleanup
brew cask cleanup
brew uninstall --force brew-cask
brew update
brew upgrade
brew cleanup
brew cask install --force brew-cask
Homebrew Caskの再インストール
  • brew cleanup
    Homebrewのキャッシュを削除する
  • brew cask cleanup
    Homebrew Caskのキャッシュを削除する
  • brew uninstall --force brew-cask
    Homebrew Caskを強制的にアンインストールする
  • brew update
    Homebrewを最新のバージョンに更新する
  • brew upgrade
    インストール済みのHomebrewパッケージを最新のバージョンにアップグレードする
  • brew cask install --force brew-cask
    Homebrew Caskを強制的に再インストールする

2-3. 自動補完機能が正常に動作するようになった

再度ターミナルを起動すると、ついにエラーが解決し、zshの自動補完機能が正常に動作するようになりました。

自動補完機能が正常に動作するようになった
こちらもどうぞ。
Electron, npm, nodeを久々に更新した(nvm)
Electron, npm, nodeを久々に更新した(nvm)
npm、nodeを久々に更新しようとしたところ、ESMモジュールシステムと古いCommonJSモジュールシステムの競合によるエラーが発生しました。 Node.jsとnpmのバージョンに互換性がない可能性があるため、Node.jsのバージョン管理ツールであるnvmをインストールしました。 nvmを使ってNode.jsの最新LTSバージョンをインストールし、npmを10.7.0にアップデートすることで問題を解決しました。 npmの更新通知 久々にElectronプログラムを作ろう...

久しぶりにMacでElectronを使えるようにした【node.jsでアプリ自作】
久しぶりにMacでElectronを使えるようにした【node.jsでアプリ自作】
Macで動く自作ツールをJavaScriptでプログラムするために、Electronを使っていました。 久しぶりにプログラムを修正しようとしたら、electronコマンドが通りません。 改めて環境を構築しました。 ポイント electronのインストールで「sudo npm install -g electron --unsafe-perm=true --allow-root」でオプションを付加しないとエラーになった Electronが見つからない Electronは、「HT...

MacにEmacsをインストールした 【パッケージ管理システムHomebrew】
MacにEmacsをインストールした 【パッケージ管理システムHomebrew】
MacにEmacsをインストールするには、まずパッケージ管理システムのHomebrewをインストールします。 次に、ターミナルから「brew install emacs」コマンドを実行することで、Emacsをインストールできます。 これで、「emacs」コマンドを使ってEmacsを起動し、テキスト編集を始めることができるようになります。 MacにEmacsをインストールする2つの準備 macOS 10.15 Catalinaには、はじめからEmacsが入っているわけではありま...
QRコードを読み込むと、関連記事を確認できます。

zshでエラーでbrewの更新が必要だった(compinit)
【スポンサーリンク】
タイトルとURLをコピーしました