Estou construindo um script de provisionamento para um ubuntu vagrant vm
, em um ubuntu host
, ambos 12.10 64bit
Ao instalar os seguintes pacotes:
sudo apt-get -y install php5-xsl graphviz php-pear unison
Eu recebo o aviso:
dpkg-reconfigure: unable to re-open stdin: No file or directory
tentei pesquisar, mas os resultados estão gerando todos os outros erros com o apt-get possível, não consigo descobrir como suprimir o aviso acima. As instalações funcionam, mas o aviso acima está causando linhas de erro no padrão stdout.
Alguém tem alguma idéia do que poderia ser a causa ou como suprimir o aviso
export DEBIAN_FRONTEND=noninteractive
trabalhou para mim nodpkg-preconfigure
palcoA resposta foi definir o
perl:locale
's conforme esta :Isso resolve o problema, mas adiciona tempo indesejado ao
vagrant up
provisionamento.fonte
70debconf
comentários do @ kenorb para pré-configurar.Execute este comando:
para ver se você possui esse arquivo. Nesse caso, a solução é comentar a
DPkg
linha que impede a pré-configuração de todos os pacotesdebconf
antes de serem instalados.Portanto, adicione estes comandos ao seu arquivo de provisionamento:
Caso contrário, se você não se importa com esse arquivo, basta removê-lo:
Aqui estão alguns outros comandos a serem considerados, mas não acho que eles façam algo útil:
fonte
--frontend=noninteractive
opção no comando definido no arquivo.sudo sed -i 's/\(dpkg-preconfigure\) --apt/\1 --frontend=noninteractive --apt/' /etc/apt/apt.conf.d/70debconf
antes esudo sed -i 's/ --frontend=noninteractive//' /etc/apt/apt.conf.d/70debconf
depois.O redirecionamento Bash funciona bem para stdout e stderr.
Para redirecionar o fluxo de erros, use o seguinte:
Para redirecionar stdout (mensagens que não são erros / avisos) e stderr ambos, use:
Esse é um atalho disponível no bash para isso:
Ou:
Abaixo, podemos ver claramente que o descritor de arquivo 1 é stdout, 2 stderr, 3 stdin.
Portanto, para o que você está dizendo que deseja fazer, você só precisa do primeiro comando que dei.
fonte