でぶ

とあるサイトの開発室

CentOSに最新版の『TMUX』をインストール!

はじめに。

TMUXを使うと、 ターミナルの中に複数の画面を立ち上げ切り替えながら作業したり、画面を分割して参照しながら作業ができたりします。

さらに、 「ウィンドウ閉じちゃった・・・」 「接続、切れたぁー!!!」 って場合でもTMUXなら簡単にアタッチ(再接続)出来ます。

便利でしょ?!

インストール。

で、ちょっとインストールされるバージョンを調べてみると・・・

$ yum info tmux
Loaded plugins: fastestmirror, security
Determining fastest mirrors
 * base: ftp.iij.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Available Packages
Name        : tmux
Arch        : x86_64
Version     : 1.6
Release     : 3.el6
Size        : 208 k
Repo        : epel
Summary     : A terminal multiplexer
URL         : http://sourceforge.net/projects/tmux
License     : ISC and BSD
Description : tmux is a "terminal multiplexer."  It enables a number of terminals (or
            : windows) to be accessed and controlled from a single terminal.  tmux is
            : intended to be a simple, modern, BSD-licensed alternative to programs such
            : as GNU Screen.

TMUXのバージョンが1.6とかなり古い。 面倒だけどソースコードを落としてきて最新版をインストールしましょ。

最新版のTMUXをインストールする準備。

まだ入ってなければ、インストール。

$ sudo yum install wget gcc make

「ncurses」も必要なので、サクッとインストール。

$ sudo yum install ncurses ncurses-devel

libeventのインストール。

CentOSの「libevent」だとバージョンが古いのでTMUXのコンパイルでエラーになる。 仕方がないので、「libevent」も2.0系の最新版をインストール。

$ sudo wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
$ tar xvzf libevent-2.0.21-stable.tar.gz
$ cd libevent-2.0.21-stable
$ ./configure
$ make
$ sudo make install

共用ライブラリに登録する。

$ sudo echo "/usr/local/lib" > /etc/ld.so.conf.d/libevent.conf
$ sudo ldconfig

TMUXのインストール。

いよいよ「tmux」の最新版をインストール。

$ wget http://downloads.sourceforge.net/tmux/tmux-1.9a.tar.gz
$ tar xvzf tmux-1.9a.tar.gz
$ cd tmux-1.9a
$ ./configure
$ make
$ sudo make install

お疲れ様でした!ふぅ・・・

設定。

設定ファイル~/.tmux.confを作成。

$ vim ~/.tmux.conf
# Prefix key
unbind C-b
set -g prefix C-t
bind C-t send-prefix

# reload config
bind C-r source-file ~/.tmux.conf \; display "~/.tmux.conf is reloaded!"

とりあえず、プレフィックスキーの変更と設定のリロードだけ。 細かい設定はまた今度!

TMUXを起動。

普通に起動。

$ tmux

再接続の場合。

$ tmux attach

ログインしたら自動で起動。

いちいちTMUXとコマンドを打って起動させるのは面倒!

$ vim ~/.bash_profile

.bash_profileに以下を追加。

# TMUX Settings
if [ -z $TMUX ]; then
  if $(tmux has-session); then
    tmux attach
  else
    tmux
  fi
fi

これで、ログイン時に自動的にTMUXを起動、セッションがある場合はアタッチするようになります。

まとめ。

最新版を使おうと思ったらかなり面倒だけど、頑張ってインストールしてみてください。 TMUXをインストールしておくとあとあと楽ですよ!