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だと見つけるのも一手間なので、エントリにしてみました。
それでは。