Bagaimana mencegah prompt yang meminta untuk me-restart layanan ketika menginstal libpq-dev

29

Saya ingin menginstal libpq-devdi mesin Vagrant saya. Saya menginstalnya dengan

$ apt-get install -y libpq-dev

Selama instalasi muncul prompt yang menanyakan apakah diizinkan untuk memulai kembali beberapa layanan secara otomatis. Prompt ini melanggar ketentuan Vagrant saya. Bagaimana cara menonaktifkan prompt ini?

cepat

Teks:

Ada layanan yang diinstal pada sistem Anda yang perlu direstart ketika pustaka tertentu, seperti libpam, libc, dan libssl, ditingkatkan. Karena restart ini dapat menyebabkan gangguan layanan untuk sistem, Anda biasanya akan diminta pada setiap pemutakhiran untuk daftar layanan yang ingin Anda restart. Anda dapat memilih opsi ini untuk menghindari diminta; sebagai gantinya, semua restart yang diperlukan akan dilakukan untuk Anda secara otomatis sehingga Anda dapat menghindari pertanyaan yang diajukan pada setiap pemutakhiran perpustakaan.

**** EDIT ****

Terima kasih atas jawaban Patrick dan pertanyaan ini saya perbaiki. Sekarang Vagrantfile saya mengandung:

 sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libpq-dev
OrangeTux
sumber
Saya menyarankan untuk menggunakan -ytetapi tampaknya tidak banyak berubah. lihatman apt-get | less +/--force-yes
Valentin Bajrami
Saya sudah mencoba opsi itu juga, tetapi itu tidak berhasil.
OrangeTux

Jawaban:

28

Atur variabel lingkungan DEBIAN_FRONTEND=noninteractive.

Sebagai contoh:

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

Ini akan membuat apt-getpilih opsi default.

Patrick
sumber
2
Tidak berfungsi dalam kasus ini.
Nigel Horne
2
Silakan tentukan apa "kasus ini". Penulis pertanyaan telah memilih jawaban ini sebagai benar. Jika jawabannya tidak bekerja untuk Anda, saya sarankan Anda mengajukan pertanyaan baru dan pastikan untuk menjelaskan bagaimana kasus Anda berbeda, dan bahwa ini tidak bekerja untuk Anda.
Patrick
1
Itu tidak bekerja untuk saya juga.
Felipe
Apakah opsi default untuk memulai kembali layanan atau tidak memulai kembali layanan?
Nicholi
tidak bekerja untuk saya juga - export DEBIAN_FRONTEND=noninteractive; sudo apt-get update; sudo apt-get install -y libssl-dev openssl. ubuntu 18
RSHAP
9

Anda harus dapat mencapai ini dengan menggunakan debconf-set-selections. Dari halaman 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.

Untuk menentukan input yang diperlukan debconf-set-selectionsjika tidak diketahui, Anda dapat menjawab prompt secara manual dan kemudian memeriksa database debconf untuk menemukan nilai yang benar. Untuk melakukan ini, instal debconf-utils:

sudo apt-get -y install debconf-utils

yang menyediakan debconf-get-selectionsperintah. Kemudian:

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

untuk memeriksa nilai-nilai dalam database. Di sistem saya (Ubuntu, tetapi Debian harus serupa) saya tidak diminta ketika saya apt-get install libpq-dev, dan saya punya entri ini:

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

jadi Anda harus dapat menggunakan:

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

untuk mengatur daftar layanan untuk memulai kembali ketika memutakhirkan libssl ke 'tidak ada'.

Di bawah Debian, harus ada informasi lebih lanjut tentang nilai yang valid untuk baris ini di questions.datfile di bawah /var/lib/cdebconf. Lihat https://www.debian.org/releases/stable/i386/apbs03.html.en untuk lebih jelasnya.

mvermaes
sumber
4

Saya pikir jawaban yang ada mungkin agak lama. Berikut ini bekerja untuk saya baru-baru ini.

Untuk melihat pengaturan paket

sudo debconf-show <package-name>

MISALNYA:

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

Untuk mengubah pengaturan

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

MISALNYA

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

Kiat bonus, untuk mengatur pengaturan ini untuk semua paket gunakan '*' sebagai pengganti nama paket.

MISALNYA

echo '* libraries/restart-without-asking boolean true' | sudo debconf-set-selections
PiersyP
sumber
Jawaban yang diterima tidak bekerja untuk saya tetapi menggunakan debconf-set-selectionstidak.
bradj