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 は簡単なので、先に説明する。
単に 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
にパス通しておけば良い。
単に 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
ここでのポイントは、CPPFLAGS
と LDFLAGS
にさっきインストールした 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
にパス通しておけば良い。