Amazon EC2のAmazon Linuxでmoshをyumでインストール
Macでtmux使ってるとmosh使った時に出力が崩れる時があるから普段はあんまり使わないんですが、一応管理してる全サーバに入れてるので入れておこうと思ってお試し。サーバ側でtmux使って作業するときぐらいしかmoshで接続しないんですが。
ググってもあんまり情報がなかったのでメモとして残しておこうと久々の更新。
そのままではインストールできない
普通にAWSのAmazon Linux(AMI release 2013.03)でmoshを入れようと思って
# yum insall --enablerepo=epel mosh
とかやると
600 packages excluded due to repository priority protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package mosh.x86_64 0:1.2.4-1.el6 will be installed --> Processing Dependency: libprotobuf.so.6()(64bit) for package: mosh-1.2.4-1.el6.x86_64 --> Finished Dependency Resolution Error: Package: mosh-1.2.4-1.el6.x86_64 (epel) Requires: libprotobuf.so.6()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
とか言われてそのままじゃインストールできない。
amzn-mainのリポジトリにあるprotobufパッケージが新しいのが原因でlibprotobuf.so.8がインストールされている。
# rpm -qa protobuf protobuf-2.5.0-1.8.amzn1.x86_64
CentOS6の場合はepel経由でmoshをインストールすると、2.3.0が入るので問題ないんですが。
確認するとこんな感じ。
# yum list --enablerepo=epel --disablerepo=amzn-main protobuf Loaded plugins: priorities, security, update-motd, upgrade-helper amzn-updates | 2.3 kB 00:00 182 packages excluded due to repository priority protections Installed Packages protobuf.x86_64 2.5.0-1.8.amzn1 @amzn-main Available Packages protobuf.i686 2.3.0-7.el6 epel
どうするか
yumでもバージョン指定のインストールはできるけど、先に新しいバージョン(2.5.0)が入っているので無理なわけです。yumにはrpmのforceコマンド的なものがないからとりあえずパッケージを落としてrpmコマンドでインストールすることに。
# yumdownloader --enablerepo=epel --disablerepo=amzn-main protobuf-2.3.0-7.el6.x86_64
パッケージの中身を確認する。
2.3.0は以下。
# rpm -qpl protobuf-2.3.0-7.el6.x86_64.rpm /usr/lib64/libprotobuf.so.6 /usr/lib64/libprotobuf.so.6.0.0 /usr/share/doc/protobuf-2.3.0 /usr/share/doc/protobuf-2.3.0/CHANGES.txt /usr/share/doc/protobuf-2.3.0/CONTRIBUTORS.txt /usr/share/doc/protobuf-2.3.0/COPYING.txt /usr/share/doc/protobuf-2.3.0/README.txt
デフォルトでインストールされている2.5.0は以下。
# rpm -ql protobuf /usr/lib64/libprotobuf.so.8 /usr/lib64/libprotobuf.so.8.0.0 /usr/share/doc/protobuf-2.5.0 /usr/share/doc/protobuf-2.5.0/CHANGES.txt /usr/share/doc/protobuf-2.5.0/CONTRIBUTORS.txt /usr/share/doc/protobuf-2.5.0/COPYING.txt /usr/share/doc/protobuf-2.5.0/README.txt
かぶるファイルがないから強制的にインストールしてみます。
# rpm -ivh --force protobuf-2.3.0-7.el6.x86_64.rpm
これであとはmoshをインストールすればすんなり入ります。
# yum install --enablerepo=epel mosh
以上。