Como instalar o apt de um script bash?

0

Estou tentando fazer um script para configurar uma nova VM para estar pronta para uso, o que envolve algumas instalações, mas quando coloco os comandos de instalação ( apt-get --yes install <package> ) no script, eles sempre falham com:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

O script é executado como root ( sudo ./setup.sh )

Quando eu verifico o processo apt , obtenho:

4 S root      2227     1  0  80   0 -  1126 -      07:33 ?        00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily update

0 S root      2231  2227  0  80   0 -  1126 -      07:33 ?        00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held update

O problema é que isso só acontece quando os aptos são executados a partir de um script, se eu executar exatamente os mesmos comandos manualmente, eles nunca terão esse problema. O script de shell roda no apt de alguma forma diferente?

Em qualquer caso, qual é a melhor maneira de executar o instalador apt (ou yum para essa matéria) a partir de um script de shell de uma maneira que não faria com que ele travasse?

    
por Maxim 17.08.2018 / 16:42

1 resposta

1

Ele diz a você (apt não pode obter o bloqueio) que você precisa executar o script bash mais adiante para pós-instalar ou esperar que esses nomes de processos não estejam presentes. Você pode ser malvado com isso e matar os processos e deletar o lockfile e então atualizar o apt-get ou apenas esperar que eles terminem.

Coisas que podem fazer isso falhar - se você executar o apt-get instala algo como parte da instalação de outro pacote (não faça isso, apenas use dependências).

    
por 17.08.2018 / 17:23