Устранение зависимости systemd от Amazon Linux, чтобы разрешить установку RabbitMQ

Хотя ssh обеспечивает два отдельных выходных потока (для stdout и stderr), он подает только один входной поток (stdin). Поэтому вам нужно либо передавать содержимое скрипта и входной файл через разные механизмы.

Например, один через переменную, другой через stdin:

LC_CODE=$(cat local_script.sh) ssh host 'eval "$LC_CODE"' < input

(предполагая, что и ваш ssh клиент передает LC_* переменную (SendEnv в ssh_config) и ssh_config sshd сервер принимает их (AcceptEnv в sshd_config))

Или просто передайте содержимое local_script. sh в качестве кода удаленной оболочки, предполагая, что оболочка входа удаленного пользователя соответствует синтаксису этого скрипта:

ssh host "$(cat local_script.sh)" < input

Или скомпонуйте код и ввод, переданный в stdin ssh, как в примере:

{
  echo '{'; cat local_script.sh; echo '}; exit'
  cat input
} | ssh host 'bash -s some arguments'

Здесь используется bash, потому что bash позаботится о чтении ввода по одному байту за раз, чтобы не читать дальше этой строки }; exit, в то время как не все другие оболочки делают это.

Или если sed на удаленном хосте - GNU sed:

echo '#END-OF-SCRIPT' | cat local_script.sh - input |
  ssh host 'set some arguments; eval "$(sed -u "/^#END-OF-SCRIPT/q")"'

(здесь код оценивается оболочкой входа удаленного пользователя и предполагается, что она Bourne-подобная)

3
08.09.2017, 23:09
1 ответ

Похоже, используемая вами версия Amazon Linux не имеет systemd. Я не уверен, что какая-либо версия Amazon Linux на сегодняшний день использует systemd. Учитывая, что systemdявляется основной частью операционной системы, его нельзя просто установить как пакет и ожидать, что он будет работать.

Если вы не можете найти нужные вам пакеты для Amazon Linux, я рекомендую начать заново с AMI из другой ОС. Например, существуют AMI для CentOS , с которых вы могли бы начать вместо этого.

Я рекомендую перейти на новый дистрибутив Linux. В более популярном дистрибутиве Linux, таком как CentOS или Ubuntu, у вас гораздо меньше шансов столкнуться с проблемами с отсутствующими пакетами, как в настоящее время с Amazon Linux.

3
27.01.2020, 21:21

Теги

Похожие вопросы