CentOS6
CentOS 6にtmuxをインストールする方法
-
ライブラリ
- curses
- libevent 2.x
-
インストール
tmuxをインストールする場合、以下が必要になります
curses
ncursesがyumでインストールできますので、ncursesをインストールします。 ただし、tmuxをソースからインストールするため、ncurses-develも必要になります。
# yum install ncurses ncurses-devel
libevent 2.x
CentOS 6ではyumでインストールできるのがlibevent 1.x になります。 tmuxはlibevent 2.x が必要なので、libevent 2.xをソースからインストールします。 libevetn 2.xのインストール方法は以下になります。
個人用にlibevent2.xをインストールして、システム全体には影響が無いようにする場合、以下のようにします。
tmuxのソースはgithubから取得できます。以下のようにwgetなどで取得します。 取得したファイルを解凍したら、作成されたソースのディレクトリに移動します。
# wget https://github.com/tmux/tmux/releases/download/2.1/tmux-2.1.tar.gz ... # tar zxf tmux-2.1.tar.gz # cd tmux-2.1
libevent 2.x をソースからデフォルトでインストールすると、/usr/local にインストールされます。 CentOS のyumでインストールしたlibevent 1.x を参照しないように configureのオプション LIBEVENT_LIBS, LIBEVENT_CFLAGS を使って、libevent 2.xを参照するように指定します。 /usr/local 以下にlibevent2.x がある場合は、以下のオプションをconfigureに指定します。
LIBEVENT_LIBS="-L/usr/local/lib -levent" LIBEVENT_CFLAGS="-I/usr/local/include"
# ./configure LIBEVENT_LIBS="-L/usr/local/lib -levent" LIBEVENT_CFLAGS="-I/usr/local/include"注 LIBEVENT_LIBSオプションに "-levent" を指定しないとエラーになります。
configureでエラーが無ければ、コンパイルとインストールを実行します。
# make # make install成功すると、/usr/local/bin/tmux が作成されています。
参考
ライブラリをスタティックリンクする場合
デフォルトだと、ライブラリは共有リンクになりますが、個人用だとスタティックリンクの方が問題が起こりにくいので、スタティックリンクでtmuxをインストールしてみます。
-
CentOS 6で必要なライブラリ
- ncurses
- ncurses-devel
- ncurses-static
- glibc-static
- libevent 2.x
-
configureのスタティックリンク用オプション
CenOS 6.6の場合、スタティックリンクにするために以下のライブラリが必要です。 スタティックリンクの場合は、ncurses-staticとglibc-staticが追加で必要になります。
libevent 2.x はソースからインストールします。 通常のインストールでも問題ないですが、今回は個人用にホームディレクトリ以下にインストールします。
スタティックリンクにする場合、configureにオプション "--enable-static"を指定します。 以下のように実行してエラーがでなければmake と make install を実行してインストールします。
$ ./configure --enable-static \ --prefix=$HOME/local \ LIBEVENT_LIBS="-L$HOME/local/lib -levent" \ LIBEVENT_CFLAGS="-I$HOME/local/include"
configureでエラーがでなければ、コンパイルとインストールを実行します。
$ make $ make installスタティックリンクの場合、tmuxの実行ファイルは約2MBになります。 スタティックリンクでなく共有ライブラリを使う場合は、約517KB になりました。
参考
注. 上記の参考ページでは "--disable-shared" を指定しているのもありますが、libevent 2.x のconfigureで、オプション"--disable-shared"が無くても、tmuxをスタティックリンクでコンパイルすることができました。 libevent ではデフォルトでconfigureオプションのshared、staticともに有効になっていて、スタティックリンクで"--disable-shared"が必要かどうかは不明です。 現状、とりあえず指定しなくても動作はしています。