🙄

Zsh の初期化エラーを解決するための手順

2024/06/23に公開

Zsh の初期化エラーにハマったので解決するための手順を記載

  • Zsh の初期化エラーを解決するための手順

エラーメッセージの確認

zsh シェルを起動した際に、以下のようなエラーメッセージが表示されることがあります。

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


compaudit コマンドの実行

このエラーを解決するための最初のステップは、compaudit コマンドを実行して、不正な権限を持つディレクトリやファイルを特定することです。

compaudit


権限の確認と修正

compaudit コマンドの出力を確認し、以下のように表示された不正なディレクトリやファイルの権限を修正します。

There are insecure files:
/usr/local/share/zsh/site-functions/_brew
/usr/local/share/zsh/site-functions/_brew_services


これらのファイルの権限を修正するために、以下のコマンドを実行します:

sudo chmod 755 /usr/local/share/zsh/site-functions/_brew
sudo chmod 755 /usr/local/share/zsh/site-functions/_brew_services
sudo chown root:admin /usr/local/share/zsh/site-functions/_brew
sudo chown root:admin /usr/local/share/zsh/site-functions/_brew_services


.zshrc ファイルの確認と編集

次に、zsh の設定ファイルである .zshrc を確認し、適切な設定がされているか確認します。

nano ~/.zshrc


以下が設定されていること

autoload -Uz compinit
compinit -i



ファイルを保存して閉じる(Nanoエディタの場合、Ctrl + Xで終了し、Yで保存、Enterで確定)。


.zcompdump ファイルの削除

zsh のキャッシュファイル(.zcompdump)を削除し、compinit を再実行します。

rm -f ~/.zcompdump
compinit


ターミナルの再起動

新しいターミナルウィンドウを開いて、エラーメッセージが表示されないことを確認する。

参考情報

コマンド 説明
compaudit 不正な権限を持つファイルやディレクトリをリストアップ。
sudo chmod 755 [ファイル/ディレクトリ] 指定されたファイルやディレクトリの権限を 755 に設定。
sudo chown root:admin [ファイル/ディレクトリ] 指定されたファイルやディレクトリの所有者をrootに設定。
nano ~/.zshrc zsh の設定ファイルを開いて編集。
rm -f ~/.zcompdump zsh のキャッシュファイルを削除。
compinit zsh の補完機能を初期化。

Discussion