Comando após o apt-get install não estar executando no script

1

Eu escrevi uma pergunta em Falha do servidor, mas acho que é mais aplicável a essa comunidade.

Estou escrevendo um script destinado a configurar inicialmente minha gota. No script, estou abrindo a conexão SSH com meu servidor Ubuntu 14.04 da seguinte forma (com USER e REMOTE variáveis definidas anteriormente):

ssh -t -t $USER@$REMOTE <<'ENDSSH'
ENDSSH

Dentro dessa conexão SSH, eu tenho vários comandos que eu quero executar - instalando o Node.js, atualizando o npm, instalando o MongoDB e assim por diante.

Mas, quando eu faço o comando apt-get install , outros comandos não são executados.

Então, se eu tiver isso:

ssh -t -t $USER@$REMOTE <<'ENDSSH'
sudo apt-get update
sudo apt-get install -y nodejs
sudo apt-get install -y npm
ENDSSH

O comando sudo apt-get install -y npm não será executado. Agora, eu sei que posso instalar vários pacotes dentro do mesmo comando apt-get install , mas isso não é o que eu estou perguntando, já que outros comandos depois não serão executados. Este exemplo eu acabei de escrever por simplicidade para poder explicar meu problema. Concretamente, eu tenho estes comandos:

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

Comando sudo npm install -g npm e tudo que o segue nunca é executado.

Eu encontrei perguntas como este onde eles dizem que eu deveria colocar vários -t flags (ou -tt ) ao abrir ssh connection, o que estou fazendo, mas isso não ajuda.

O que estou fazendo de errado?

    
por Tommz 11.04.2016 / 18:06

1 resposta

0

Você pode querer terminar suas linhas com && para que o script avance apenas quando o comando estiver pronto. Exemplo:

ssh -t -t $USER@$REMOTE <<'ENDSSH'
sudo apt-get update &&
sudo apt-get install -y nodejs &&
sudo apt-get install -y npm
ENDSSH
    
por Videonauth 17.05.2016 / 03:07