CentOS 6 / CentOS 7 で最新のtmuxを、yumで入れたtmuxと共存させたままインストールする

tmux はかなり便利なツールなので、 積極的に使いたいが、 CentOS 6 や CentOS 7 の yum で入れるとバージョンが古すぎる問題がある。
tmux のバージョンが古いと、.tmux.conf で反映されない項目があって不便。

本記事では、CentOS 6 / CentOS 7 上で最新のtmuxを、yum由来のtmuxと共存させたままインストールする方法をシェアする。

tmux をソースからコンパイルしてインストールすればよいのだが、 tmux が依存するライブラリである libevent のインストールが大変だったりして地味に苦労する。
以下、CentOS 6 と CentOS 7 に分けて説明する。

Note: 本記事では、執筆時点で最新版の tmux 2.3 をインストールする。
Note: 本記事で載せるコマンドの一部は root 権限を必要とするので、一般ユーザで実行する場合は必要に応じて sudo を付ける必要がある。

CentOS 7 系の場合

CentOS 7 は簡単なので、先に説明する。

単に tmux をインストールするには、

yum install tmux

で良いのだが、バージョンが古い。 ちなみに、/usr/bin/tmux にインストールされる。

そこで、tmux 2.3 をソースからコンパイルする。
まず、依存するライブラリをインストールする。

yum install ncurses-devel libevent libevent-devel libevent-headers

あとは、tmux 2.3 をコンパイルしてインストールするだけ。

wget https://github.com/tmux/tmux/releases/download/2.3/tmux-2.3.tar.gz
tar xzf tmux-2.3.tar.gz
cd tmux-2.3
./configure --prefix=/usr/local/tmux-2.3
make
make install

確認する。

/usr/local/tmux-2.3/bin/tmux -V
tmux 2.3

OK。 あとは、/usr/local/tmux-2.3/bin にパス通しておけば良い。

CentOS 6 系の場合

単に tmux をインストールしたければ、

yum install tmux

で良いが、バージョンが古い。 ソースからコンパイル・インストールする必要がある。

ソースからコンパイル・インストールするには CentOS 6 でも CentOS 7 と同じようにすればいいのだが、 libevent を yum で入れたら古すぎるので、libevent もソースからコンパイルしないといけない。

まず、ncurses は yum で入れる。

yum install ncurses-devel

libevent (現時点での最新バージョン 2.1.8 stable) を local にインストールする。

wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
tar xzf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent-2.1.8-stable
make
make install

あとは、tmux 2.3 をコンパイルしてインストールする。

wget https://github.com/tmux/tmux/releases/download/2.3/tmux-2.3.tar.gz
tar xzf tmux-2.3.tar.gz
cd tmux-2.3
./configure CPPFLAGS="-I/usr/local/libevent-2.1.8-stable/include" LDFLAGS="-L/usr/local/libevent-2.1.8-stable/lib" --prefix=/usr/local/tmux-2.3
make
make install

ここでのポイントは、CPPFLAGSLDFLAGS にさっきインストールした libevent ライブラリを指定すること。
これでコンパイルできる。

.bash_profile かどこかに export LD_LIBRARY_PATH="/usr/local/libevent-2.1.8-stable/lib:$LD_LIBRARY_PATH" を書いてから、
動作を確認する。

/usr/local/tmux-2.3/bin/tmux -V
tmux 2.3

OK。 あとは、/usr/local/tmux-2.3/bin にパス通しておけば良い。

参考文献

この記事をシェアする:Tweet about this on TwitterShare on FacebookShare on Google+Share on TumblrEmail this to someone

コメントを残す

名前を入力しなくてもコメント投稿可能です (匿名ユーザとして表示されます)。