apt-get sai do script após instalar pacotes

0

Eu li as respostas em este post mas não parece funcionar para o meu problema.

Estou executando um script bash via stdin do wget:

wget -O - http://serverip/subfolder/script | sudo bash

Eu tentei usar apt-get -y --force-yes install <packages..> || true , mas ele ainda sai do script se o listado for instalado pelo apt-get.

Ele não sai do script se todos os pacotes listados já estiverem instalados.

O mesmo acontece se eu tiver um apt-get upgrade e ele instalar o (s) pacote (s). Ele sairá do script.

Eu tenho outro conjunto de scripts, que parece funcionar. Nesse cenário, o script de instalação é apenas um esboço, que baixa, executa o script via bash <scriptname> e, em seguida, exclui o script. O script em si elevará seu privilégio ao se supor. apt-get funciona como esperado aqui.

Qualquer ideia de como evitar que apt-get encerre o script seria bem-vinda.

    
por azuer88 20.06.2015 / 05:36

2 respostas

3

Eu gostaria que as pessoas parassem de fazer: wget | bash . É apenas bobo e tem efeitos não intencionais como esse aqui. Você tem bash, então faça uso de seus recursos. Em particular, substituição de processo:

bash <(wget -O - http://serverip/subfolder/script)
    
por muru 20.06.2015 / 11:45
2

Você provavelmente só precisa parar apt-get de ler avidamente a entrada padrão. Faça isso redirecionando stdin para /dev/null , um arquivo que retorna eof para reads. Por exemplo:

apt-get -y --force-yes install ... </dev/null
    
por meuh 20.06.2015 / 11:36