tmux2.4をcentOS6.9にインストールした

tmuxを入れました。yumにあるけど古いので、手動でインストールします。

バージョンはtmux 2.4です。

tmuxとは?

 仮想端末の一種で、一つのセッションでCLI画面を分割したりタブ化したりできる。実行中のプロセスがsshの切断によって終了することも防げるのもメリット。(viで開いていたファイルを保存できず、viが終了することもない)

CLIを触っていく意気込みはあるので、まずは使いこなせるように入れてみました。 

 

インストールの手順

まずはコンパイル環境を整える

 yum installでは最新版は入らない。

C言語で作られているので、コンパイルして結合の作業が要る。

また、コンパイル中参照するライブラリの中に、centOSのデフォルト構成では入っていないライブラリがあるので、それを事前に使えるようにしておく必要がある。

 

sudo yum -y install gcc ncurses-devel

 gccは、コンパイルするためのパッケージ。これがないとそもそもコンパイルできないので必須。

ncurses-develは、tmuxコンパイルに必要なライブラリ。

 

一つだけかんたんには手に入らないライブラリが・・・

libeventというライブラリもncurses-develと同じように導入する必要があるけど、yumだとバージョンが古いせいかtmuxコンパイル中にエラーになる。

そのため、手動でlibeventを導入しておく必要がある。

 

wget 

https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz

tar -zxvf libevent-2.1.8-stable.tar.gz

cd ./libevent-2.1.8-stable

./configure

make

make install

これでlibeventがサーバに導入できたけれど、C言語コンパイル時に参照できる状況になっていない。

 

  1. C言語コンパイルしようとする
  2. /etc/ld.so.cache/にライブラリ置き場が書かれているので、そこからライブラリを探そうとする
  3. コンパイルする

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をインストールする 

準備が整ったので以下、

wget 

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

 動いた!