安装/升级/设置ZSH的默认版本的最终方法是什么?

时间:2012-08-20 05:21:48

标签: macos terminal zsh osx-mountain-lion

OSX Mountain Lion在/ bin / zsh中附带ZSH 4.3.1。下载后,./configure, make, make check,make 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,自制软件,卷曲来源?)
2.运行安装命令的位置是否重要? 3.如何升级或覆盖Mountain Lion附带的ZSH版本?
这就是人们最终使用oh-my-zsh的原因吗?

4 个答案:

答案 0 :(得分:49)

您必须在OSX中使用以下命令设置默认shell:

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

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

Homebrew方式

我建议你使用自制软件。它使事情变得更容易。 安装自制程序,如http://mxcl.github.com/homebrew/所述。

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

答案 1 :(得分:2)

我会尝试回答你的问题,但我觉得这更适合superuser

  

安装ZSH最简洁的方法是什么? (从git,自制软件,卷曲源?)

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

  

运行安装命令的位置是否重要?

不,您为命令提供的参数确实很重要 - 特别是目标安装位置和库路径。如果您不提供这些(或事先在环境中设置它们),安装程序会将项目放在默认系统路径中;并您需要使用提升的权限运行安装程序,即sudo或以root登录。

  

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

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

相反,如果您构建并将其安装到私人容器中并适当地指向PATH;您可以使用更新版本而无需修改已发布的版本。

答案 2 :(得分:2)

好的,所以Burhan的评论让我想起了一种情况,我必须明确地将首选版本的路径添加到我的.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)

活泉!希望这有助于遇到同样问题的人。

答案 3 :(得分:0)

过去,我提出的用于此类升级的解决方案大致如下:

  • 在某处安装较新版本(在我的情况下是fink / sw / bin的默认版本)
  • 在/ bin / bin / zsh =>中重命名操作系统安装的版本/bin/zsh.moved
  • 在/ bin中设置符号链接到/ sw / bin / zsh安装

这似乎有效。

我想知道的是这是否是一个愚蠢的解决方案,如果是,为什么? 感谢