Jawaban:
Masalah dengan:
apt-get --yes install $something
adalah bahwa ia akan meminta konfirmasi manual jika kunci publik pemilik tanda tangan paket tidak dalam keyring, atau kondisi lainnya. untuk memastikan itu tidak meminta konfirmasi lakukan saja ini:
apt-get --yes --force-yes install $something
Jika Anda ingin memiliki pengaturan ini permanen, buat file di /etc/apt/apt.conf.d/, seperti /etc/apt/apt.apt.conf.d/90forceyes dengan konten berikut:
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
-y
semakin membosankan. (Plus itu jawaban yang lebih lengkap.)
--force-yes
: seperti yang dibalas oleh utas terkait inidebian-devel
, --force-yes
mungkin membuat sistem tidak dapat digunakan. (Saya tidak downvoting karena jawabannya sebenarnya mengatasi masalah seperti yang dinyatakan oleh OP, tapi saya tetap akan menambahkan PERINGATAN MERAH BESAR untuk jawabannya.)
Perhatikan bahwa jika Anda juga ingin secara otomatis mengikuti jawaban default saat prompt interaktif muncul, Anda dapat menggunakannya DEBIAN_FRONTEND=noninteractive
Instalasi tunggal:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]
Misalnya:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix
Semua pembaruan:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y update
Anda dapat mengatur opsi yang lebih baik dengan -o Dpkg::Options::="--force-confdef"
dan -o Dpkg::Options::="--force-confold"
.
Contoh:
apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"
atau
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Contoh prompt interaktif:
Bacaan menarik: Lakukan instalasi paket Debian tanpa pengawasan
-y
, saya masih mendapat konfirmasi menanyakan apakah saya ingin memulai kembali layanan. Saya membutuhkan ini untuk sepenuhnya menghilangkan semua prompt.
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Setidaknya ini harus masuk /etc/apt/apt.conf
dan berkomentar. Saya khawatir Ubuntu mengambil taktik Microsoft untuk selalu meminta izin.
"Apakah kamu yakin?", Tentu saja aku yakin, aku bukan monyet yang terlatih hanya mengetik di keyboard, akan klik senang.
Selanjutnya pintu akan bertanya, "Apakah Anda yakin ingin keluar?"
Oven akan bertanya, "Apakah Anda yakin ingin memasak?"
Mobil akan bertanya, "Apakah Anda yakin ingin mengerem?"
Pemadam api akan bertanya, "Apakah Anda yakin ingin memadamkan api?"
Maaf Dave, aku tidak bisa membiarkanmu melakukan itu.
HAL9000 dapat menggunakan kontraksi tetapi Data tidak bisa, atau tidak bisa.
Dari HOWTO apt-get
Gunakan -y
sakelar:
apt-get -y install packagename
umumnya opsi dari manual harus bekerja dengan baik
apt-get -y --force-yes install package
jika tidak berhasil Anda dapat mencoba menggunakan yes
perintah.
yes | apt-get -y --force-yes install package
memang menggunakan ini dengan skrip penyediaan shell gelandangan saya
PS: jika Anda ingin non-interaktif tetapi dengan umumnya menyatakan tidak maka Anda dapat mencoba ini:
yes no | apt-get install package
Jika Anda selalu menginginkan argumen -y saya sarankan menambahkan baris
alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands
ke dalam .bashrc Anda. Ini, seperti dijelaskan oleh komentar, akan secara otomatis menambahkan argumen -y ke semua perintah apt-get Anda dan karenanya menyetujui semua unduhan.
CATATAN: Ini akan tetap benar sampai Anda mengembalikan .bashrc Anda dan memulai kembali shell.
Saya sedang mencari cara untuk memilih non-default dalam skrip, khususnya ketika menginstal wireshark, dan akhirnya menggunakan tmux untuk berinteraksi dengan shell, sebagai berikut:
# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach