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