zsh をソースからインストールした

シェアする

前回の vim に引き続き root 権限ないけど入れてみたその2は zsh. なんとなく使い続けてますが便利ですね。

Sponsored Links

zsh のインストール

いつものように wget で tar ボールを落して configure とかする。

$ wget http://sourceforge.net/projects/zsh/files/zsh/5.0.2/zsh-5.0.2.tar.bz2/download
$ tar jxvf zsh-5.0.2.tar.bz2
$ cd zsh-5.0.2

# 環境変数の設定
$ export CPPFLAGS="-I$HOME/local/include -I$HOME/local/include/ncurses"
$ export LDFLAGS="-L$HOME/local/lib  -L$HOME/local/lib/ncurses"

$ ./configure --prefix=$HOME/local --enable-multibyte --enable-pcre

$ make
/usr/bin/ld: /home/example/local/lib/libncurses.a(lib_color.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/home/example/local/lib/libncurses.a: could not read symbols: Bad value

make したときになんかエラー出てる...

ncurses の再インストール

ncurses でエラー出たので再インストールした。shared object として使えない云々とあるので --with-shared を付けたのだが、ついでにマルチバイトも有効にし忘れてたのでそれも指定したらいろいろエラー出まくって自分ではどうしょうもなくなってバージョン落とした。c/c++力の無さに泣いた。

なのでホントに --with-shared で解決したのかはわからないし再度試す元気もない。

ncurses の再コンパイル時の configure オプション

$ ./configure --prefix=$HOME/local --with-shared --without-debug --enable-widec

その後再度 zsh を ./configure, make, make install とやったらインストールできた。

zsh をデフォルトのシェルにする

通常ログインシェルを変更するには chsh コマンドを使用するのだが、それで指定できるシェルは chsh -l の一覧にあるものでないといけない。自分でインストールしたものは指定できないので .bashrc に記述しておく。

ところが exec /path/to/zsh などとだけ書いてしまうと確かにシェルは zsh に変わるのだが scp が使えなくなってしまう。なので scp でアクセスした際には zsh を実行しないようにする。

$ vim .bashrc
# 以下を追記する
if [ "$SSH_TTY" != "" ]; then
   exec /path/to/zsh
fi

これで通常の ssh 時は zsh が使え、且つ scp も正常に動くようになった。

Sponsored Link

シェアする

フォローする