apt-get sai do script bash após instalar pacotes

apt-get sai do script bash após instalar pacotes

Eu li as respostas emesta postagemmas 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 um dos listados estiver instalado pelo apt-get.

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

A mesma coisa acontece se eu tiver um apt-get upgradee ele instalar pacote(s). Isso sairá do script.

Eu tenho outro conjunto de scripts que parece funcionar. Nesse cenário, o script de instalação é apenas um stub, que baixa, executa o script e bash <scriptname>depois o exclui. O próprio script aumentará seu privilégio sudoando-se. apt-getfunciona como esperado aqui.

Qualquer ideia sobre como evitar apt-geto encerramento do script será apreciada.

Responder1

Gostaria que as pessoas parassem de fazer: wget | bash. É simplesmente bobo e tem efeitos indesejados como este aqui. Você tem o bash, então use seus recursos. Em particular, substituição de processo:

bash <(wget -O - http://serverip/subfolder/script)

Responder2

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

apt-get -y --force-yes install ... </dev/null

informação relacionada