zshが新しくインストールしたコマンドを認識しない問題への対処

新しいプログラムのインストールのために、以下の一連のコマンドによってプログラムをインストールすることがある。
./configure
make && make install


しかし、zsh上でこの手順によってインストールしたコマンドは、環境変数PATHで指定したディレクトリにインストールしていても、認識されない。つまり、タブでコマンドの補完もできないし、コマンドを入力してもcommand not foundとなる。同様に、削除したコマンドも反映されない。コマンドの導入・削除を反映させるにはその都度、再ログインするか以下のコマンドで設定ファイルをリロードする必要がある。
source ~/.zshrc


大きなプログラムのインストールのために、複数のプログラムやパッケージ・ライブラリなどをインストールする場合、いちいち設定を読み込ませるのは面倒だ。他のbashなどのシェルでは自動でPATHを認識してくれる。そのため、bashでの動作を前提として作られたインストールスクリプトが使いまわせないため問題となる。
この問題の解決策は、以下のように.zshrcまたは.zshenvに自動で読みなおす設定を記述することだ。
zstyle “:completion:*:commands” rehash 1


何か問題が起きたらまずいので、ログイン時に必ず読み込む.zshenvに記述することを勧める。


参考:
autocomplete – Rebuild auto-complete index (or whatever it’s called) and binaries in $PATH cache in zsh – Unix & Linux Stack Exchange http://unix.stackexchange.com/questions/2179/rebuild-auto-complete-index-or-whatever-its-called-and-binaries-in-path-cach

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です