tmux2.4をcentOS6.9にインストールした
tmuxを入れました。yumにあるけど古いので、手動でインストールします。
バージョンはtmux 2.4です。
tmuxとは?
仮想端末の一種で、一つのセッションでCLI画面を分割したりタブ化したりできる。実行中のプロセスがsshの切断によって終了することも防げるのもメリット。(viで開いていたファイルを保存できず、viが終了することもない)
CLIを触っていく意気込みはあるので、まずは使いこなせるように入れてみました。
インストールの手順
まずはコンパイル環境を整える
yum installでは最新版は入らない。
また、コンパイル中参照するライブラリの中に、centOSのデフォルト構成では入っていないライブラリがあるので、それを事前に使えるようにしておく必要がある。
gccは、コンパイルするためのパッケージ。これがないとそもそもコンパイルできないので必須。
ncurses-develは、tmuxコンパイルに必要なライブラリ。
一つだけかんたんには手に入らないライブラリが・・・
libeventというライブラリもncurses-develと同じように導入する必要があるけど、yumだとバージョンが古いせいかtmuxコンパイル中にエラーになる。
そのため、手動でlibeventを導入しておく必要がある。
tar -zxvf libevent-2.1.8-stable.tar.gz
cd ./libevent-2.1.8-stable
./configure
make
make install
これでlibeventがサーバに導入できたけれど、C言語がコンパイル時に参照できる状況になっていない。
libeventのmake installの作業では、ld.so.cacheの情報更新までは含まれていないので、それは手作業で行わなければいけない。
/etc/ld.so.cache/の情報を更新するには、ld.so.confの情報を更新して、ld.so.cacheへ反映させるという作業が必要になる。
今回、libeventをmake installしたところ、/usr/local/libにlibeventの各種ライブラリが展開されていた。
そのため、/usr/local/libをコンパイル時に探してくれるように設定する。
そもそもなぜ/usr/local/libに展開されていたかというと、/usr/local/は、管理者がローカルにソフトウェアをインストールするためのフォルダ。FHS準拠のため、 Linuxと呼ばれるものは全てそういうルールとなっているようです。
OS自体のアップデートがあったとしても、/usr/local/配下のファイルは絶対に触られないという規定があるため、管理者が自由に利用できるディレクトリらしい。なのでOS自体のアップデートがあったとしても、消えたりしない。
その中で、/usr/local/libは今回のようなライブラリを置く場所として準備されている。
その一方で、/usr/libもあるけど、これはデフォルトでいろいろと入っていたので、システムで必要なものだったり標準で利用可能なライブラリ置き場かな。
なので、ld.so.confが読み込む対象に/usr/local/libを追加する。
vi /etc/ld.so.conf.d/usr_local.conf
で、usr_local.confを新規作成編集し、
/usr/local/lib
と一行だけ書いて保存。
usr_local.confというファイル名にしたけど、ファイル名はなんでもいい。/etc/ld.so.confのファイルに*.confで全て読み込めってデフォルトで指示があるため、ファイル名はなんでも読み込んでくれる。
追記した上で、
ldconfig
で、完了。これによってld.so.confの内容がld.so.cacheへ反映される。
tmuxをインストールする
準備が整ったので以下、
https://github.com/tmux/tmux/releases/download/2.4/tmux-2.4.tar.gz
tar -zxvf tmux-2.5.tar.gz
cd ./tmux-2.5
./configure
make
make install
使ってみる
tmux
動いた!