Nonaktifkan konfirmasi saat menginstal paket Debian

22

Bagaimana saya bisa sepenuhnya menonaktifkan permintaan yang muncul saat menginstal paket Debian, saya telah menggunakan semua opsi yang saya temukan tetapi ada beberapa paket yang masih diminta.

Saya menggunakan perintah ini:

apt-get -y --allow-unauthenticated --force-yes -o DPkg::Options::="--force-overwrite" -o DPkg::Options::="--force-confdef" install x11-common

Mengapa paket x11-common masih meminta? bagaimana saya bisa menghilangkan prompt ini?

Terima kasih sebelumnya

--Pemenang

Sunting: hanya untuk memperjelas, petunjuknya bukan pertanyaan "ya / tidak", pertanyaan terbuka di layar berwarna (tipikal dua layar warna) tetapi saya ingin mengatur opsi default untuk pertanyaan ini

victorgp
sumber

Jawaban:

38

Pilih ujung depan baru dengan mengatur env Anda.

DEBIAN_FRONTEND=noninteractive apt-get -y install x11-common

Saya menggunakan ini setiap saat dalam mengotomatiskan instalasi paket dengan cfengine.

bahamat
sumber
+1 Ini adalah jawaban yang tepat
lynxman
Dalam beberapa kasus aneh seperti ketika Anda perlu menggunakan chroot di dalam ini secara non-interaktif dapat Anda gunakanDEBIAN_FRONTEND=noninteractive sudo -E chroot . echo "something"
mschuett
8

Tidak menginstal secara manual x11-common, saya tidak yakin pertanyaan apa yang Anda tanyakan. Tetapi jika mereka datang dari debconf, maka Anda harus dapat menjawab pertanyaan sebelumnya debconf-set-selections.

Sakit kepala
sumber
Ini solusinya, terima kasih. Saya telah mendapatkan properti dengan debconf-get-selection dan mengaturnya sebelumnya dengan debconf-set-selection dan tidak ada lagi petunjuk yang muncul
victorgp
Bahkan dengan pilihan yang ditetapkan, beberapa paket mungkin masih bertanya tergantung pada prioritas. Tetapi saya merekomendasikan pengaturan pilihan jika memungkinkan. Mengatur frontend noninteractiveadalah sihir "jangan tanya apa pun apa pun" bendera apa pun.
bahamat
4

Anda perlu dpkg-reconfigure debconfdan kirim ke "Abaikan pertanyaan dengan prioritas kurang dari: Kritis".

Ini tidak membuat Anda keluar dari menjawab pertanyaan kritis.

DerfK
sumber
1

Untuk menonaktifkan konfirmasi secara global untuk mengkonfigurasi ulang semua paket debconf, cukup beri komentar pada baris kedua dari /etc/apt/apt.conf.d/70debconffile.

Atau jika Anda menyediakan VM, tambahkan perintah ini ke skrip provisi Anda:

sudo ex +"%s@DPkg@//DPkg" -cwq /etc/apt/apt.conf.d/70debconf
sudo dpkg-reconfigure debconf -f noninteractive -p critical

Anda juga dapat mencoba cara yang sama bagaimana Travis CI melakukannya:

sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install some_package

Untuk beberapa paket lain, seperti ttf-mscorefonts-installer(yang bergantung pada language-pack-en), yang di atas tampaknya tidak berfungsi, jadi cobalah:

echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
sudo apt-get install -y language-pack-en
kenorb
sumber
1
--force-yesadalah cara yang SANGAT menakutkan dan tidak disarankan untuk melakukan ledakan pada prompt. Jangan kaget jika Anda berakhir dengan sistem yang rusak dan mungkin tidak dapat dipulihkan suatu hari nanti.
dragon788