26

OSX Mountain Lion 在 /bin/zsh 中附带 ZSH 4.3.1。下载后,./configure, make, make check,-ingmake install版本5.0.0,

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 中设置默认 shell:

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

重新登录到 OSX,它应该可以工作!

自制方式

我建议您使用自制软件。它使事情变得容易得多。安装自制软件,如Link中所述。

Homebrew 将您的东西安装在 /usr/local/bin 中,因此请确保 /usr/local/bin 位于 /usr/bin 之前。

在 ~/.zshrc 和 ~/.bashrc 中添加以下行:

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

安装 zsh:

brew install zsh

将默认 shell 设置为 zsh:

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

最后从 brew 安装中设置使用 zsh 的权限。将“/usr/local/bin/zsh”添加到“/etc/shells”文件以允许zsh。否则,您将收到错误消息“您无权运行此应用程序。管理员已将您的 shell 设置为非法值。”

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、自制软件、curl-ing 源?)

随心所欲地获取源;但最干净的方法是创建一个私人的bin,我喜欢/Users/burhan/bin/,并在那里安装东西。在我看来,这是最干净最简单的方法,因为您不需要依赖其他库/安装程序/魔术。

在哪里运行安装命令是否重要?

不,您给命令提供什么参数并不重要——尤其是目标安装位置和库路径。如果您不提供这些(或事先在环境中设置它们),安装程序会将项目放置在默认系统路径中;为此您需要以提升的权限运行安装程序,即sudoroot.

如何升级或覆盖 Mountain Lion 随附的 ZSH 版本?

我建议不要升级它;仅仅是因为我不确定它会对期望它与广告版本一起发布的各种其他脚本产生什么副作用。为了你的理智,我会避免这种情况。

相反,如果您将其构建并安装到私人垃圾箱中并PATH适当地指向您;您可以使用更新后的版本,而无需修改出厂版本。

于 2012-08-20T05:40:16.217 回答
2

好的,所以 Burhan 的评论让我想起了我必须将首选版本的路径显式添加到我的.bash_profile. 版本 5.0.0 是 in /usr/local/bin,所以现在$PATHin 我.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 中重命名操作系统安装的版本
  • 在 /bin 中设置到 /sw/bin/zsh 安装的符号链接

这似乎奏效了。

于 2012-12-26T02:14:35.033 回答