Como evitar o prompt que pede para reiniciar os serviços ao instalar o libpq-dev

29

Quero instalar libpq-devna minha máquina Vagrant. Eu instalo com

$ apt-get install -y libpq-dev

Durante a instalação, um prompt é exibido, perguntando se é permitido reiniciar alguns serviços automaticamente. Esse prompt interrompe minha provisão do Vagrant. Como pode desativar esse prompt?

pronto

Texto:

Existem serviços instalados no seu sistema que precisam ser reiniciados quando certas bibliotecas, como libpam, libc e libssl, são atualizadas. Como essas reinicializações podem causar interrupções de serviço para o sistema, você normalmente será solicitado em cada atualização a lista de serviços que deseja reiniciar. Você pode escolher esta opção para evitar ser solicitado; em vez disso, todas as reinicializações necessárias serão feitas automaticamente para você, para evitar que sejam feitas perguntas a cada atualização da biblioteca.

**** EDIT ****

Graças à resposta de Patrick e a essa pergunta, eu a corrigi. Agora meu arquivo Vagrant contém:

 sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libpq-dev
OrangeTux
fonte
Eu estava sugerindo usar, -ymas parece que não muda muito. Vejaman apt-get | less +/--force-yes
Valentin Bajrami
Eu tentei essa opção também, mas isso também não funcionou.
OrangeTux

Respostas:

28

Defina a variável de ambiente DEBIAN_FRONTEND=noninteractive.

Por exemplo:

export DEBIAN_FRONTEND=noninteractive
apt-get install -y libpq-dev

Isso fará com que apt-getselecione as opções padrão.

Patrick
fonte
2
Não funciona neste caso.
Nigel Horne
2
Especifique o que é "este caso". O autor da pergunta selecionou esta resposta como correta. Se a resposta não funcionar para você, recomendo que faça uma nova pergunta e certifique-se de esclarecer como o seu caso é diferente e que isso não funciona para você.
Patrick
1
Também não funcionou para mim.
Felipe
A opção padrão é reiniciar o serviço ou não o serviço?
Nicholi 25/10
também não funcionou para mim - export DEBIAN_FRONTEND=noninteractive; sudo apt-get update; sudo apt-get install -y libssl-dev openssl. Ubuntu 18
RSHAP 23/11
9

Você deve conseguir isso usando debconf-set-selections. Na página do manual:

debconf-set-selections can be used to pre-seed the debconf database
with answers, or to change answers in the database. Each question will
be marked as seen to prevent debconf from asking the question
interactively.

Para determinar a entrada necessária para debconf-set-selectionsse desconhecido, você pode responder o prompt manualmente e depois inspecionar o banco de dados debconf para encontrar o valor correto. Para fazer isso, instale debconf-utils:

sudo apt-get -y install debconf-utils

que fornece o debconf-get-selectionscomando Então:

sudo debconf-get-selections | grep libssl1.0.0:amd64

para verificar os valores no banco de dados. No meu sistema (Ubuntu, mas o Debian deve ser semelhante), não é solicitado quando eu instalo o libpq-dev e tenho esta entrada:

libssl1.0.0:amd64   libssl1.0.0/restart-services     string

então você deve poder usar:

echo 'libssl1.0.0:amd64 libssl1.0.0/restart-services string' | sudo debconf-set-selections

para definir a lista de serviços a serem reiniciados ao atualizar o libssl para 'none'.

No Debian, deve haver mais informações sobre valores válidos para esta linha no questions.datarquivo em /var/lib/cdebconf. Veja https://www.debian.org/releases/stable/i386/apbs03.html.en para obter mais detalhes.

mvermaes
fonte
4

Eu acho que as respostas existentes podem ser um pouco antigas. O seguinte funcionou para mim recentemente.

Para ver as configurações de um pacote

sudo debconf-show <package-name>

POR EXEMPLO:

$ sudo debconf-show libssl1.1 
  libssl1.1/restart-services:
  libssl1.1/restart-failed:
* libraries/restart-without-asking: false

Para alterar a configuração

echo '<package-and-setting-string>' | sudo debconf-set-selections

POR EXEMPLO

echo 'libssl1.1 libraries/restart-without-asking boolean true' | sudo debconf-set-selections

Dica de bônus, para definir essa configuração para todos os pacotes, use '*' no lugar do nome do pacote.

POR EXEMPLO

echo '* libraries/restart-without-asking boolean true' | sudo debconf-set-selections
PiersyP
fonte
A resposta aceita não funcionou para mim, mas o uso debconf-set-selectionsfez.
bradj 28/11