こんばんにちは
シェルなんてなんでもよくね?って思っている方も多いかもしれませんが
私はzshを使います。
でもzshrcを凝って設定しているわけでもなく、どっかのテンプレート的なものを少しいじって使っているだけです。
それでも補完機能はとんでもなく使いやすくて便利です。
そんなzshをCentOS7にインストールしていきたいと思います。
続きをどうぞ。
目次
インストールするバージョンについて
yumから入るzshのバージョンは少し古いです。
[k-san@raspi2 ~]$ yum info zsh
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
利用可能なパッケージ
名前 : zsh
アーキテクチャー : armv7hl
バージョン : 5.0.2
リリース : 28.el7
容量 : 2.3 M
リポジトリー : base/7/armhfp
要約 : Powerful interactive shell
URL : http://zsh.sourceforge.net/
ライセンス : MIT
説明 : The zsh shell is a command interpreter usable as an interactive login
: shell and as a shell script command processor. Zsh resembles the ksh
: shell (the Korn shell), but includes many enhancements. Zsh supports
: command line editing, built-in spelling correction, programmable
: command completion, shell functions (with autoloading), a history
: mechanism, and more.
そこで、ここではソースからインストールします。
必要なパッケージ類
私がzshを入れる段階ではCentOS自体を入れたばかりだったので、以下のパッケージのインストールが必要でした。
- wget
- gcc
- make
baseとか”Development Tools”をgroupinstallすれば良いのですが、今回の環境ではこの記事のようなことになってしまったので個別にインストールしていますが、色々まとめてインストールするには
sudo yum groupinstall base "Development Tools"
とすれば良いでしょう。
最新バージョン確認
こちらがzshのサイトになるようです。
こちらにSourceforgeのzshのサイトがあります。
こちらにソースがあります。
今回は最新は5.5.1で、リンクは
https://sourceforge.net/projects/zsh/files/zsh/5.5.1/zsh-5.5.1.tar.gz
でした。
ダウンロードと展開
[k-san@raspi2 ~]$ cd /usr/local/src
[k-san@raspi2 ~]$ wget https://sourceforge.net/projects/zsh/files/zsh/5.5.1/zsh-5.5.1.tar.gz
[k-san@raspi2 src]$ sudo wget https://sourceforge.net/projects/zsh/files/zsh/5.5.1/zsh-5.5.1.tar.gz
[k-san@raspi2 src]$ sudo tar xzf zsh-5.5.1.tar.gz
[k-san@raspi2 src]$ ls
zsh-5.5.1 zsh-5.5.1.tar.gz
インストール
[k-san@raspi2 src]$ cd zsh-5.5.1
[k-san@raspi2 zsh-5.5.1]$ ls
ChangeLog Doc Functions MACHINES Misc Scripts Test aczsh.m4 config.sub install-sh
Completion Etc INSTALL META-FAQ NEWS Src Util config.guess configure mkinstalldirs
Config FEATURES LICENCE Makefile.in README StartupFiles aclocal.m4 config.h.in configure.ac stamp-h.in
[k-san@raspi2 zsh-5.5.1]$ ./configure
途中で
configure: error: in `/usr/local/src/zsh-5.5.1':
configure: error: "No terminal handling library was found on your system.
This is probably a library called 'curses' or 'ncurses'. You may
need to install a package called 'curses-devel' or 'ncurses-devel' on your
system."
See `config.log' for more details
と言われるので
[k-san@raspi2 zsh-5.5.1]$ sudo yum -y install ncurses-devel
もう一度、
[k-san@raspi2 zsh-5.5.1]$ ./configure
zsh configuration
-----------------
zsh version : 5.5.1
host operating system : armv7l-unknown-linux-gnueabi
source code location : .
compiler : gcc
preprocessor flags :
executable compiler flags : -Wall -Wmissing-prototypes -O2
module compiler flags : -Wall -Wmissing-prototypes -O2 -fPIC
executable linker flags : -s -rdynamic
module linker flags : -s -shared
library flags : -ldl -lncursesw -lrt -lm -lc
installation basename : zsh
binary install path : /usr/local/bin
man page install path : /usr/local/share/man
info install path : /usr/local/share/info
functions install path : /usr/local/share/zsh/5.5.1/functions
See config.modules for installed modules and functions.
では
[k-san@raspi2 zsh-5.5.1]$ make
[k-san@raspi2 zsh-5.5.1]$ sudo make install
ログインシェル変更
[k-san@raspi2 zsh-5.5.1]$ whereis zsh
zsh: /usr/local/bin/zsh /usr/local/lib/zsh /usr/share/zsh
[k-san@raspi2 zsh-5.5.1]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
[k-san@raspi2 zsh-5.5.1]$ sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
[k-san@raspi2 zsh-5.5.1]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/local/bin/zsh
[k-san@raspi2 zsh-5.5.1]$ chsh
k-san のシェルを変更します。
新しいシェル [/bin/bash]: /usr/local/bin/zsh
パスワード:
シェルを変更しました。
これで完了です。
まとめ
yumとかaptとかのパッケージ管理システムがある環境でわざわざソースからコンパイルしてインストールするのは賛否両論あるようですが、いい感じに使い分ければいいんじゃないですかね?
そう考えるとFreeBSDとかのportsは時間はかかるけど便利かも?
ではでは