Я написал вопрос о сбое сервера, но, думаю, он больше подходит для этого сообщества.
Я пишу сценарий, который предназначен для первоначальной настройки моей капли. В этом сценарии я открываю соединение SSH с моим сервером Ubuntu 14.04 следующим образом (с ранее определенными переменными USER
и REMOTE
):
ssh -t -t $USER@$REMOTE <<'ENDSSH'
ENDSSH
Внутри этого соединения SSH у меня несколько команд который я хочу выполнить - установка Node.js, обновление npm, установка MongoDB и т. д.
Но когда я выполняю команду apt-get install
, другие команды не выполняются.
Итак, если у меня есть это:
ssh -t -t $USER@$REMOTE <<'ENDSSH'
sudo apt-get update
sudo apt-get install -y nodejs
sudo apt-get install -y npm
ENDSSH
Команда sudo apt-get install -y npm
не будет выполнена. Теперь я знаю, что могу установить несколько пакетов в рамках одной команды apt-get install
, но это не то, о чем я спрашиваю, так как другие команды впоследствии не будут выполнены. Этот пример я просто написал из простоты, чтобы я мог объяснить свою проблему. Конкретно, у меня есть эти команды:
ssh -tt $USER@$REMOTE <<'ENDSSH'
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g npm
ENDSSH
Команда sudo npm install -g npm
и все, что следует за ней, никогда не выполняется.
Я сталкивался с такими вопросами, как этот , где они говорят, что я должен поставить несколько -t
флагов (или -tt
) при открытии соединения ssh
, что я делаю, но это не т помощь.
Что я делаю не так?
Вы могли бы хотеть закончить свои строки &&
, таким образом, сценарий только совершенствуется, когда команда сделана. Пример:
ssh -t -t $USER@$REMOTE <<'ENDSSH'
sudo apt-get update &&
sudo apt-get install -y nodejs &&
sudo apt-get install -y npm
ENDSSH
mimeopen -d file.<type>
->Other
->/<path-to-the-executable>/matlab
. Ссылки: , Как я устанавливаю ассоциацию файлов по умолчанию? и , Где я могу найти местоположение папок для установленных программ? – pa4080 3 April 2018 в 06:53