/ usr / bin / env: 'ruby': нет таких пользовательских данных файла или каталога в codedeploy ubuntu - PullRequest
0 голосов
/ 23 июня 2019

Я попытался установить CodeDeploy Agent внутри UserData в Ubuntu 14.04 с Cloudformation следующим образом:

#!/bin/bash
sudo apt-get update
sudo apt-get install ruby
sudo apt-get install wget
cd /home/ubuntu
wget https://aws-codedeploy-eu-central-1.s3.amazonaws.com/latest/install
sudo chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent start

После Cloudformation успешно, и когда я CodeDeploy Agent в Терминале, обнаружил следующее сообщение:

ubuntu@ip-xxx-xxx-xxx-xxx:~$ sudo service codedeploy-agent status
● codedeploy-agent.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

Итак, я попытался установить вручную, начиная с

ubuntu@ip-xxx-xxx-xxx-xxx:~$ sudo ./install auto
/usr/bin/env: 'ruby': No such file or directory

Найден тот. Но когда я вручную установил эти скрипты внутри пользовательских данных, он работал отлично.Пожалуйста, дайте мне знать, какой из них отсутствует.

1 Ответ

0 голосов
/ 23 июня 2019

Сообщение об ошибке сообщает, что в $PATH.

нет команды с именем ruby.

В 90% случаев, когда компьютер сообщает, что не может что-то найти, причина в том, что чего-то там нет. (Компьютеры действительно хороши в поиске вещей, они не делают случайных ошибок.) В этом случае это будет означать: нет команды с именем ruby.

В 90% остальных случаев вы говорите компьютеру искать неправильные места. В этом случае это будет означать: ruby находится в каталоге, который не находится на $PATH.

Это самые распространенные.

Специально для исполняемых файлов также существует вероятность того, что двоичный файл не является исполняемым. А для сценариев оболочки могут быть некоторые символы, которые интерпретируются как часть имени файла. Например, очень популярный из них имеет разрывы строк Windows в сценарии оболочки, где ОС будет интерпретировать все до первого \n как строку shebang и, таким образом, будет включать \r как часть имени файла для выполнения.

...