web-dev-qa-db-ja.com

コマンドライン:zはインストールされていますが、コマンドが見つかりません

私は最近、Mac OSでストックターミナルを数か月間非常に軽く使用した後、iTerm2とZSH(oh-my-zshを使用)をインストールしました。

「z」というツールを聞いて、brew install zを使用してbrew経由でインストールしました。一晩問題なく使用しました。その後、zsh: command not found: zと言って、動作を停止しました。もう一度インストールしてみたところ、Warning: z-1.8 already installedに出会った。

これはどのように意味がありますか?インストールされていますが、コマンドが見つかりませんか?この機能を復元するにはどうすればよいですか?

ありがとう!

5
Fabio Bracht

brew list -f <formula_name>を介してHomebrew式によってインストールされたファイルのリストを調べることができます。この場合、出力は次のようになります。

> brew list -f z
/usr/local/Cellar/z/1.9/etc/profile.d/z.sh
/usr/local/Cellar/z/1.9/INSTALL_RECEIPT.json
/usr/local/Cellar/z/1.9/README
/usr/local/Cellar/z/1.9/share/man/man1/z.1

この場合、コマンドはなく(binもありません)、z.shだけであることに注意してください。 zはシェルツールであり、シェル環境を取得および設定する関数としてシェルにソースする必要があるため、これは理にかなっています。外部コマンドとして実行しても、十分に深い統合は提供されません。したがって、おそらくz.sh.bash_profile、または.bashrc.zshrcをシェルにソースする必要があります。

通常、使用可能にするためにインストール後の相互作用を必要とするHomebrew式には、警告にリストされた指示があります。これは、インストール後に表示されるか、brew info <formula_name>を介して手動で取得されます。この場合、

> brew info z
<irrelevant info omitted>
==> Caveats
For Bash or Zsh, put something like this in your $HOME/.bashrc or $HOME/.zshrc:
  . `brew --prefix`/etc/profile.d/z.sh

もちろん、そのアドバイスを一粒の塩で受け止め、より現代的で人間が読めるシェル構文を使用する必要があります。

source "$(brew --prefix)/etc/profile.d/z.sh"

または

source /usr/local/etc/profile.d/z.sh

homebrewのインストールが/usr/localにあることがわかっている場合。

14
4ae1e1

mac osxでiterm2とzshを使用すると、次のようになります。

最初:

vim ~/.zshrc

この行を追加します(または単にzを追加します)

plugins=(
    git
    z
)

で終了

:x!

それでおしまい。

Brewは、ルート特権の必要性を回避するために、/usr/local/binではなく/usr/binにインストールすると思います。多くの場合 これは追加する必要があります$PATH(アプリケーションとスクリプトを探すためのデフォルトディレクトリ)-特にシェルを変更した場合。追加すると、Brewがインストールしたすべてのコマンドに再びアクセスできるようになります。

0
NoChecksum