zshとXcodeToolsとMacPortsと

macでログインシェルをzshに変更したいと思い立ち、やってみた。
ついでにというか必要になるのでXcode ToolsとMacPortsもインストールしました。

Xcode Tools

最初にMac付属しているOSのインストールディスクからXcode Toolsをインストールしておく。

MacPorts

MacPorts とは?
MacPortsMacOSX 上で利用可能なパッケージシステムの一つで、主に UNIX 向けに開発されたオープンソース・ソフトウェアを手軽にインストールすることができます。

ということでインストールしておきましょう。
ここから「MacPorts-1.7.0-10.5-Leopard.dmg」をダウンロードしてインストール。

zsh

とりあえず現状のzshのバージョンを確認してみる。
ターミナルを立ち上げて、

$ zsh --version
zsh 4.3.4 (i386-apple-darwin9.0)

デフォルトで入っているのは4.3.4らしい。

MacPortsで新しいバージョンのzshがあるか確認。

$ port search zsh
ctags @5.7 (devel)
    Reimplementation of ctags(1)

lesspipe @1.53 (textproc)
    lesspipe is an input filter for the pager less.

zsh @4.2.7 (shells)
    Zsh is a UNIX command interpreter (shell)

zsh-devel @4.3.9 (shells)
    Zsh is a UNIX command interpreter (shell)

Found 4 ports.

4.3.9がありました。

MacPortszshをインストール。

$sudo port install zsh-devel
      • > Fetching gdbm
      • > Attempting to fetch gdbm-1.8.3.tar.gz from ftp://ftp.dti.ad.jp/pub/GNU/gdbm
      • > Verifying checksum(s) for gdbm
      • > Extracting gdbm
      • > Applying patches to gdbm
      • > Configuring gdbm
      • > Building gdbm
      • > Staging gdbm into destroot
      • > Installing gdbm @1.8.3_1
      • > Activating gdbm @1.8.3_1
      • > Cleaning gdbm
      • > Fetching gperf
      • > Attempting to fetch gperf-3.0.3.tar.gz from ftp://ftp.dti.ad.jp/pub/GNU/gperf
      • > Verifying checksum(s) for gperf
      • > Extracting gperf
      • > Configuring gperf
      • > Building gperf
      • > Staging gperf into destroot
      • > Installing gperf @3.0.3_0
      • > Activating gperf @3.0.3_0
      • > Cleaning gperf
      • > Fetching libiconv
      • > Attempting to fetch libiconv-1.12.tar.gz from ftp://ftp.dti.ad.jp/pub/GNU/libiconv
      • > Verifying checksum(s) for libiconv
      • > Extracting libiconv
      • > Applying patches to libiconv
      • > Configuring libiconv
      • > Building libiconv
      • > Staging libiconv into destroot
      • > Installing libiconv @1.12_2
      • > Activating libiconv @1.12_2
      • > Cleaning libiconv
      • > Fetching ncursesw
      • > Attempting to fetch ncurses-5.7.tar.gz from ftp://ftp.dti.ad.jp/pub/GNU/ncurses
      • > Verifying checksum(s) for ncursesw
      • > Extracting ncursesw
      • > Configuring ncursesw
      • > Building ncursesw
      • > Staging ncursesw into destroot
      • > Installing ncursesw @5.7_0
      • > Activating ncursesw @5.7_0
      • > Cleaning ncursesw
      • > Fetching zsh-devel
      • > Attempting to fetch zsh-4.3.9.tar.bz2 from ftp://ftp.iij.ad.jp/pub/misc/zsh/
      • > Attempting to fetch zsh-4.3.9.tar.bz2 from http://www.zsh.org/pub/
      • > Verifying checksum(s) for zsh-devel
      • > Extracting zsh-devel
      • > Configuring zsh-devel
      • > Building zsh-devel
      • > Staging zsh-devel into destroot
      • > Installing zsh-devel @4.3.9_0
      • > Activating zsh-devel @4.3.9_0
      • > Cleaning zsh-devel

なんかzsh以外にも色々入ったみたい。。

MacPortsを使ってインストールしたものは、/opt/local/以下にはいります。確認してみます。

$ls /opt/local/bin | grep zsh
zsh
zsh-4.3.9

ちゃんとインストールされていました。

/etc/shellsファイルにMacPortsでインストールしたzshのパスを追加します。

$sudo vi /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/opt/local/bin/zsh #追加

追加したらシェルを変更します。

chsh -s /opt/local/bin/zsh

ターミナルを再起動するとzshに変更されています。

%echo $SHELL
/opt/local/bin/zsh

出来ました^^

追記

MacPortsを使うためのパスを通してませんでした。。。

現状のパスを確認。

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin

このままだとMacPortsを使うときにフルパスで指定しなければいけないのでパスを追加します。

export PATH=$PATH:/opt/local/bin:/opt/local/sbin/
export MANPATH=$MANPATH:/opt/local/man

上記2行を ~/.zshrc に追加します。
で、設定ファイルを再読み込みします。

$ source .zshrc

パスが通っているか確認します。

$ echo $PATH
/opt/local/bin:/opt/local/sbin/:/usr/bin:/bin:/usr/sbin:/sbin

通りました^^