よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

ローカルユーザーでtmuxをソースインストールする

一応お仕事でLinux端末を使用しているのですが、複数のサーバにログインして作業する事が多いです。結果10~20個くらいターミナルを起動している事が過去にありました。実際2日くらい前までそうでした。

しかし最近購入した"シス管系女子"をニヤニヤしながら読んでいると、ターミナルを多重化出来るtmuxなるものが紹介されていました。便利そうだし、何よりも大量のターミナルを起動しているのは「カッコ悪い」と思いました。そんなわけでtmuxをインストールします。

tmuxのソースインストール

管理権限を持ったサーバであれば、リポジトリー変更してyumで入れてしまえば良いのですが、ローカルユーザーで導入する場合のやり方を考えます。今回はtmux2.2を導入します。

目次

#mkdir src local
#cd src
#wget -O tmux --no-check-certificate https://github.com/tmux/tmux/releases/download/2.2/tmux-2.2.tar.gz
#tar xvfz tmux
#cd cd tmux-2.2/

wgetの-Oオプションでダウンロードしたファイルの名前を指定します。
名前長過ぎるとダウンロード出来なかったので、homeディレクトリの下に作ったlocalディレクトリに作成します。

#./configure --prefix=$HOME/local
./configure: error: "libevent not found"

libeventが無いそうです。localに入れてみましょう。

#cd $HOME/src
#wget --no-check-certificate https://sourceforge.net/projects/levent/files/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz/download
#mv download libevent-2.0.22-stable.tar.gz
#tar xvfz libevent-2.0.22-stable.tar.gz
#cd libevent-2.0.22-stable
#./configure --prefix=$HOME/local
#make
#make install
#cd ../tmux-2.2

でもっかいチャレンジ。但し、ソースでlibevent入れた場合は、configure時にオプション指定が必要。

#./configure --prefix=${HOME}/local LDFLAGS="-L${HOME}/local/lib" CFLAGS="-I${HOME}/local/include"
#make
cc1: error: unrecognized command line option "-iquote."
make: *** [alerts.o] Error 1

はっ?と思って少し調べると、iquoteは古いgccで実装されていないらしい。確かに環境のgccは3.4.6とな…gcc入れ替えるわけにもいかないので、Makefileを編集する。

#vi Makefile
...
#am__append_7 = -iquote.

iquoteの該当箇所をコメントアウトし、make && make install。

#make
#make install

導入完了。後は起動なんですが、libraryのpathを一々定義しなくてはいけないので、'.bashrc'にaliasを定義してしまいましょう。

#echo 'alias tmux="LD_LIBRARY_PATH=$HOME/local/lib $HOME/local/bin/tmux"' >> .bashrc

bashで入りなおして、tmuxが起動出来たらオッケーです。

screenを使わなかった理由

ちなみに、今回tmuxを入れなくても、踏み台サーバにはscreenが入っていました。別に元々使ってなかったなら、わざわざtmux入れないでscreen使えと思うかもしれませんが、tmuxを使ってしばらく経ってからscreenが似たような事を出来ると知りました。常々勉強不足です。すいません。