299

I recently switched to zsh on my Terminal.app on my OS X machine successfully. The version number of zsh is 4.3.11.

Piper
  • 1,266
  • 3
  • 15
  • 26
Can
  • 4,516
  • 6
  • 28
  • 50

7 Answers7

1054

If you're using oh-my-zsh

Type omz update in the terminal

Note: upgrade_oh_my_zsh is deprecated

ayush narula
  • 11,275
  • 2
  • 15
  • 18
  • 74
    While this is not the actual answer to the OP, this is the answer to the question I _meant_ to be searching for. Solved my problem. – dangoldnj Apr 05 '18 at 17:07
  • 5
    `upgrade_oh_my_zsh` is deprecated, but it worked for me. and then I executed `omz update` which is the latest command to update. Hope this helps someone. – Srinivas Reddy Thatiparthy Nov 15 '21 at 06:40
188

If you have Homebrew installed, you can do this.

# check the zsh info
brew info zsh

# install zsh
brew install --without-etcdir zsh

# add shell path
sudo vim /etc/shells

# add the following line into the very end of the file(/etc/shells)
/usr/local/bin/zsh

# change default shell
chsh -s /usr/local/bin/zsh
starball
  • 20,030
  • 7
  • 43
  • 238
Mike Li
  • 3,336
  • 2
  • 22
  • 27
  • Until recently, I'd Homebrew but I choose to uninstall it on purpose since it was messing with gem installations and it was really frustrating to find a workaround. Thanks anyway. – Can Jul 15 '13 at 12:55
  • 1
    @CanSürmeli Homebrew shouldn't mess with gem installations—I use both it and Rubygems all the time. Homebrew's very useful and it's worth fixing whatever problems you're having with it. That said, I don't know that I want to use it to replace Apple's zsh... – Marnen Laibow-Koser Dec 03 '13 at 16:00
  • The directions here aren't replacing Apple's old zsh, but showing you how to make the new version available. The old one will still be available to use if necessary. – Jim Feb 01 '14 at 16:54
  • 5
    Does anybody know what the `--without-etcdir` is for? – lony Mar 26 '17 at 14:30
  • @MikeLi and @PhillipMöhler what is the purpose of skipping `/etc/zshrc`? It seems like a strange thing to skip to me. – iconoclast Jun 11 '18 at 15:33
  • Be aware that you may need to install some softwares again (e.g. rbenv) after doing this. – elquimista Oct 26 '18 at 08:24
  • I'd also love to know why this `brew install zsh` should be done `--without-etcdir` – Devin Rhode Nov 26 '18 at 04:43
  • 3
    I'm guessing the --without-etcdir has something to do with manually installing this... (editing /etc/shells to add the path to the brew installed zsh) - anyway, this option is no longer available. – Devin Rhode Nov 26 '18 at 04:47
  • that option no longer seems to be necessary. My dotfiles repo's .zshrc file with zgen is working just fine following these commands. Although the option is no longer available, I think it's ok to attempt to use the option. It just ignores it. – Devin Rhode Nov 26 '18 at 04:54
  • 7
    The option is no longer ignored, but throw an error and halt installation. The CLI flag semantics appear to have been reversed. Now you have the option to `--enable-etcdir` See: https://github.com/Homebrew/homebrew-core/blob/master/Formula/zsh.rb#L43 – Jamie Folsom Feb 06 '19 at 00:25
  • Did it exactly except I ran this instead: "brew install zsh" and nothing happens. "zsh --version" still gives 5.3 (default Mojave zsh version). Edit: nevermind a relaunch of the terminal window fixed it. If anyone wants to skip the trouble, just update to the latest Catalina, that comes with the latest 5.7.1 zsh. – CyberMew Nov 28 '19 at 06:21
  • I needed to use `brew reinstall zsh` instead as my mac has a zsh installed by default. Then I used zsh in the `/opt/homebrew/bin/zsh` instead of `/usr/local/bin/zsh`. And that worked as expected. – hakobpogh Aug 10 '21 at 08:03
15

If you're not using Homebrew, this is what I just did on MAC OS X Lion (10.7.5):

  1. Get the latest version of the ZSH sourcecode

  2. Untar the download into its own directory then install: ./configure && make && make test && sudo make install

  3. This installs the the zsh binary at /usr/local/bin/zsh.

  4. You can now use the shell by loading up a new terminal and executing the binary directly, but you'll want to make it your default shell...

  5. To make it your default shell you must first edit /etc/shells and add the new path. Then you can either run chsh -s /usr/local/bin/zsh or go to System Preferences > Users & Groups > right click your user > Advanced Options... > and then change "Login shell".

  6. Load up a terminal and check you're now in the correct version with echo $ZSH_VERSION. (I wasn't at first, and it took me a while to figure out I'd configured iTerm to use a specific shell instead of the system default).

aidan
  • 9,310
  • 8
  • 68
  • 82
5

As far as I'm aware, you've got three options to install zsh on Mac OS X:

  • Pre-built binary. The only one I know of is the one that ships with OS X; this is probably what you're running now.
  • Use a package system (Ports, Homebrew).
  • Install from source. Last time I did this it wasn't too difficult (./configure, make, make install).
simont
  • 68,704
  • 18
  • 117
  • 136
3

A simple script or execute following commands in terminal

# 1. download (currently the latest version is 5.8) and extract
wget https://sourceforge.net/projects/zsh/files/latest/download -O ./zsh-latest.tar.xz
mkdir zsh-latest
tar -xf zsh-latest.tar.xz -C zsh-latest --strip-components=1
cd zsh-latest

# 2. config, build, install
./configure
make -j4
sudo make install
which zsh

PS: If you fail to build, it probably due to missing necessary libraries. Just install libraries as the error message suggests. E.g, I didn't have ncurses:

sudo apt install ncurses-devel # for Ubuntu
sudo yum install ncurses-devel # for CentOS/Redhat
Hao Liu
  • 115
  • 6
0

omz update gave me following error:

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

This is an issue with git, where after upgrading to Mac OS Ventura (13.0.1). git command gave me above error.

Solution:

  • Download and install the 'Command Line Tools' package to fix 'git'
xcode-select --install

This will pop a dialogue box. Select "Install". More details here: https://apple.stackexchange.com/a/254381


omz update worked successfully after this for me

Kapil Jituri
  • 1,241
  • 14
  • 25
-1

I just switched the main shell to zsh. It suppresses the warnings and it isn't too complicated.

theX
  • 1,008
  • 7
  • 22