26

OSX Mountain Lion には、/bin/zsh に ZSH 4.3.1 が同梱されています。バージョン 5.0.0をダウンロードし./configure, make, make check,て-ing した後、make install

which zshまだ戻ってくる/bin/zsh/

それzsh --versionでも戻ってくるzsh 4.3.11 (i386-apple-darwin12.0)

回答者を助けるための注意事項:
インストール コマンドの実行中にエラーは発生しませんでした。

には/usr/local/bin、次の 3 つのファイルがあります。
-rwxr-xr-x 2 kevinsuttle admin 622K Aug 20 00:59 zsh
-rwxr-xr-x 2 kevinsuttle admin 622K Aug 20 00:59 zsh-5.0.0
-rwxr-xr-x 1 kevinsuttle admin 622K Aug 20 00:50 zsh.old

じぶんの$PATH
$ echo $PATH
/Users/kevinsuttle/.rbenv/shims:/Users/kevinsuttle/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin

回答が必要な質問:
1. ZSH をインストールする最もクリーンな方法は何ですか? (git、homebrew、curl-ing ソースから?)
2. インストール コマンドを実行する場所は重要ですか?
3. Mountain Lion に同梱されている ZSH のバージョンをアップグレードまたは上書きするにはどうすればよいですか? 4.これが、人々がoh-my-zsh
を使用することになる理由ですか?

4

4 に答える 4

49

OSX でデフォルトのシェルを設定する必要があります。

chsh -s /usr/local/bin/zsh $USER

OSX に再ログインすると、動作するはずです。

自作道

homebrew を使用することをお勧めします。それは物事をはるかに簡単にします。Linkで説明されているように、homebrew をインストールします。

Homebrew はあなたのものを /usr/local/bin にインストールするので、 /usr/local/bin が /usr/bin の前に来るようにしてください。

~/.zshrc および ~/.bashrc に次の行を追加します。

PATH="/usr/local/bin:/usr/local/sbin:$PATH"

zsh をインストールします。

brew install zsh

デフォルトのシェルを zsh に設定します。

chsh -s /usr/local/bin/zsh $USER

最後に、brew インストールから zsh を使用する許可を設定します。「/etc/shells」ファイルに「/usr/local/bin/zsh」を追加して、zsh を許可します。そうしないと、「このアプリケーションを実行する権限がありません。管理者がシェルを不正な値に設定しました。」というエラーが表示されます。

echo "/usr/local/bin/zsh" | sudo tee -a /etc/shells

OSX の zsh 環境のバグを修正することをお勧めします。/etc/zshenv の名前を /etc/zshrc に変更します

sudo mv /etc/{zshenv,zshrc}

OSX に再ログインすると、動作するはずです。

問題がある場合は、次のように入力します。

brew doctor
于 2012-08-27T12:46:18.957 に答える
2

私はあなたの質問に答えようとしますが、これはスーパーユーザーに適していると感じています

ZSHをインストールする最もクリーンな方法は何ですか?(git、homebrew、curl-ingソースから?)

必要に応じてソースを取得します。しかし、最もクリーンな方法は、プライベートを作成しbin、私が好き/Users/burhan/bin/で、そこに物をインストールすることです。私の意見では、これは他のライブラリ/インストーラー/マジックに依存する必要がないため、最もクリーン簡単な方法です。

インストールコマンドをどこで実行するかは重要ですか?

いいえ、コマンドにどのような引数を指定するかは重要ではありません。特に、ターゲットのインストール場所とライブラリへのパスは重要です。これらを提供しない場合(または事前に環境に設定する場合)、インストーラーはアイテムをデフォルトのシステムパスに配置します。そのためには、昇格された権限でインストーラーを実行する必要があります。つまり、としてログインしているとき、またはログインしているときに実行します。sudoroot

Mountain Lionに同梱されているバージョンのZSHをアップグレードまたはオーバーライドするにはどうすればよいですか?

アップグレードしないことをお勧めします。アドバタイズされたバージョンで出荷されることを期待している他のさまざまなスクリプトにどのような副作用があるかわからないからです。あなたの正気のために、私はこれを避けます。

代わりに、それをビルドしてプライベートビンにインストールし、PATH適切にポイントする場合。出荷されたバージョンを変更せずに、更新されたバージョンを使用できます。

于 2012-08-20T05:40:16.217 に答える
2

OK、Burhan のコメントは、優先バージョンのパスを明示的に .xml に追加しなければならない状況を思い出させました.bash_profile。バージョン 5.0.0 は に/usr/local/binあるので$PATH、私の.bash_profileは次のようになります。

export PATH="$HOME/.rbenv/bin:/usr/local/bin:$PATH"

そして今、私が実行するwhich zshと、 を取得/usr/local/bin/zsh
してzsh --version返しますzsh 5.0.0 (x86_64-apple-darwin12.0.0)

ウット!うまくいけば、これは同じ問題を抱えている人に役立ちます。

于 2012-08-20T05:42:22.610 に答える
0

過去に、このタイプのアップグレードに対して私が思いついた解決策は、おおまかに次のとおりでした。

  • 新しいバージョンをどこかにインストールします (私の場合は fink /sw/bin のデフォルト)
  • /bin /bin/zsh => /bin/zsh.moved にある OS にインストールされているバージョンの名前を変更します
  • /bin に /sw/bin/zsh インストールへのシンボリックリンクを設定します

これはうまくいくように見えました。

于 2012-12-26T02:14:35.033 に答える