双六工場日誌

平凡な日常を淡々と綴ります。

Amazon Linux 2 に mosh をインストールする

Amazon Linux 2は、正式リリースでは amazon-linux-extras から EPEL が入れられるようになったので、EPEL 入れて mosh を入れようとしたら動かなかったのでメモ。

結論としては、現時点では EPEL の mosh は現時点では使えないので、依存パッケージ入れてビルドすべし。

インストール方法

取り急ぎ、インストール方法は以下の通り。このブログを書いている時点の情報なので、実行する前に EPEL の mosh が動くようになっていないかなど確認してくれると吉です。

tar.gz アーカイブから入れる場合

sudo yum install protobuf-devel zlib-devel gcc-c++ ncurses-devel openssl-devel
wget https://mosh.org/mosh-1.3.2.tar.gz
tar xf mosh-1.3.2.tar.gz
cd mosh-1.3.2
./configure
make
sudo make install

※ダウンロードするアーカイブは、公式サイトから実行時に確認。

gitリポジトリのソースから入れる場合

sudo yum install protobuf-devel zlib-devel gcc-c++ ncurses-devel openssl-devel
sudo yum install git autoconf libtool

git clone https://github.com/mobile-shell/mosh
cd mosh
./autogen.sh
./configure
make
sudo make install

原因

EPEL の mosh を実行しようとすると、以下のエラーが出て動かない。

mosh-server: symbol lookup error: mosh-server: undefined symbol: _ZNK6google8protobuf11MessageLite25InitializationErrorStringEv

この事象は、moshリポジトリに登録されていて、protobufのバージョンがEPEL の mosh と合っていないのが原因の様子。ただ、そもそも、EPELのパッケージはAmazon Linux 2 で動くことを意図していないので、Amazon 側に対策してもらった方がよいのでは、という流れ。ただ、Amazon としても、EPELリポジトリのパッケージを動くことを保証していないので、必要な人は自分でビルドするのがよさげです。

Mosh server crashing on Amazon Linux 2 (AMI) · Issue #1026 · mobile-shell/mosh · GitHub

最初に紹介したビルド方法に必要な依存パッケージは、親切な人がここに書き込んでくれたものを全面的に参考にしました。

ここ見れば、すべて解決すると思いますが、GithubのIssueだと見つけるのも一手間なので、エントリにしてみました。

それでは。