1. CentOS6
  2. ライブラリをスタティックリンクする場合

CentOS6

CentOS 6にtmuxをインストールする方法

ライブラリをスタティックリンクする場合

デフォルトだと、ライブラリは共有リンクになりますが、個人用だとスタティックリンクの方が問題が起こりにくいので、スタティックリンクでtmuxをインストールしてみます。

  • CentOS 6で必要なライブラリ

  • CenOS 6.6の場合、スタティックリンクにするために以下のライブラリが必要です。 スタティックリンクの場合は、ncurses-staticとglibc-staticが追加で必要になります。

    • ncurses
    • ncurses-devel
    • ncurses-static
    • glibc-static
    • libevent 2.x
    手間を減らすため、libevent 2.x 以外はyumでインストールします。

    libevent 2.x はソースからインストールします。 通常のインストールでも問題ないですが、今回は個人用にホームディレクトリ以下にインストールします。

    個人用にlibevent2.xをインストール

  • configureのスタティックリンク用オプション

  • スタティックリンクにする場合、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"が必要かどうかは不明です。 現状、とりあえず指定しなくても動作はしています。