Как установить mosh на EMR master

У меня были проблемы с завершением соединений ssh, и я подумал, что может быть лучше установить mosh на master -сервере emr - таким образом, будет некоторая защита от потери соединения. Я создал следующий скрипт, который будет частью моей начальной загрузки, но когда я его запускаю, у меня возникают некоторые проблемы.

#!/bin/bash

#
# Make sure we've got git, autoconf, automake, protobuf-compilers
#

sudo yum install -y \
    git \
    autoconf-2.69-11.9.amzn1.noarch \
    automake-1.13.4-3.15.amzn1.noarch \
    protobuf-compiler-2.5.0-1.8.amzn1.x86_64 \
    protobuf-2.5.0-1.8.amzn1.x86_64

#
# Pull the latest code from github
#

cd /home/hadoop
git clone https://github.com/keithw/mosh

#
# Build and install
#

cd mosh
./autogen.sh && ./configure && make && sudo make install

В настоящее время это переключается на шаг настройки следующим образом:

checking for protobuf... no
configure: error: Package requirements (protobuf) were not met:

No package 'protobuf' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Я пытался установить PREFIX=/usr а также PKG_CONFIG_PATH=${PREFIX}/lib64/pkgconfig, затем работает./configure с --prefix=$PREFIX - это не помогает, я также пытался установить 32-битный пакет, который также не помог. Все было бы проще, если бы был источник sudo yum install -y mosh, тем не мение yum whatprovides mosh возвращается пустым

Любые указатели будут приветствоваться!

1 ответ

Это зависит от того, какую версию AMI вы производите. Необходимо внести изменения, чтобы создать его на AMI 3.7.0:

  • Не указывайте конкретную версию пакета protobuf.

    На новых AMI есть версия protobuf 2.5.0-1.10

  • Дополнительно установить пакет protobuf-devel

Так что ваши yum install Команда должна выглядеть так:

sudo yum install -y \
  git \
  autoconf-2.69-11.9.amzn1.noarch \
  automake-1.13.4-3.15.amzn1.noarch \
  protobuf-compiler \
  protobuf \
  protobuf-devel

UPD:

Не забудьте изменить группу безопасности ElasticMapReduce-master, чтобы открыть UDP-порт 60001.

  • Перейдите в AWS EC2 WebConsole / Сеть и безопасность / Группы безопасности;
  • Выберите ElasticMapReduce-master группа безопасности из списка;
  • Перейдите на вкладку Inbound и и новое правило для UDP-порта 6001.
Другие вопросы по тегам