Opsi Pacman untuk menganggap "ya" untuk setiap pertanyaan?

51

Saat memasang perangkat lunak dalam sistem debian kita dapat meletakkan sesuatu seperti ini:

sudo apt-get install -y chromium-browser

dengan begitu instalasi terjadi secara otomatis, tanpa meminta konfirmasi pemasangan [Y / n]. Bisakah saya melakukan hal yang sama dengan pacman?

JohannRamos
sumber

Jawaban:

77

Dari man pacman:

--noconfirm
Bypass semua dan semua pesan "Apakah Anda yakin?" Ini bukan ide yang baik untuk melakukan ini kecuali Anda ingin menjalankan pacman dari skrip.

Perhatikan kualifikasi tentang menggunakan ini dengan hati-hati ...

Arch adalah rilis bergulir, yang berarti pacman harus, dari waktu ke waktu, mengelola beberapa peningkatan yang cukup kompleks. Pada saat ini pacman akan meminta Anda untuk mengkonfirmasi pilihan-mengabaikan Anda prompt ini umumnya tidak akan menjadi masalah yang signifikan, namun dalam beberapa kasus, seperti dengan langkah terbaru dari /libke /usr/lib, kurangnya perhatian akan menyebabkan kerusakan besar. Ini bukan kebiasaan yang ingin Anda kembangkan.

jasonwryan
sumber
Saya tidak pernah menjalankan pacman dengan "--noconfirm" dalam waktu sekitar 3 tahun menggunakan Arch, karena peringatan itu. Berapa banyak orang yang menjalankan pacman dari naskah? Apa risiko besar? Saya harus turun tangan 3 atau 4 kali untuk memperbaiki hal-hal yang pacman telah menolak untuk memutakhirkan.
Bruce Ediger
3
Saya berasumsi, mengingat budaya Arch, bahwa peringatan itu ada untuk mencegah rasa puas diri dan gagasan yang salah kaprah bahwa mengotomatiskan pembaruan pacman adalah ide bagus. Sebuah banyak dari kerusakan dapat dimasukkan ke orang tidak membaca keluaran pacman ini; --noconfirmakan memperburuk itu ...
jasonwryan
1
Saya memiliki skrip "instal" yang menggunakan --noconfirm. Idenya adalah untuk dapat mengambil sistem dengan instalasi bersih yang baru-baru ini diperbarui dan membuatnya "dapat digunakan" tanpa interaksi pengguna.
StrongBad
3
Sebenarnya, --noconfirmjangan berasumsi yes, alih-alih mengasumsikan jawaban default, yang cukup sering no. Contoh: # pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N]Untuk kasus di atas, yes|pacman -Sccanggapyes
Utgarda
1
Sebenarnya, pacman --noconfirmdiperlukan jika Anda menggunakan wadah Docker, jika tidak, itu hanya akan menunggu input, dan dengan demikian mematikan wadah dengan kesalahan.
Amin NAIRI
29

Meskipun halaman manual tentang masalah ini tidak terlalu jelas, --noconfirmbendera tidak akan menganggap "ya" pada setiap jawaban. Ini mengasumsikan jawaban default yang kadang-kadang "tidak".

--noconfirm
      Bypass semua dan semua pesan "Apakah Anda yakin?" Ini bukan ide yang baik
      untuk melakukan ini kecuali Anda ingin menjalankan pacman dari skrip

Untuk berasumsi "ya", Anda bisa menyalurkan output dari yesperintah ke pacman.

yes | sudo pacman -S firefox
Drew Chapin
sumber
Gunakan yes | LC_ALL=en_US.UTF-8 pacman [...]untuk kompatibilitas dengan sistem yang bahasanya tidak diatur ke Bahasa Inggris. Kalau tidak, [Y/n]pertanyaannya menjadi [J/n], misalnya.
ComFreek
3
Waspadalah juga jawaban ini gagal jika Pacman pernah mengajukan pertanyaan tanpa yjawaban, mis Enter a selection (default=all).
ComFreek
@ComFreek, daripada mengubah variabel lingkungan yang diteruskan pacman, itu akan lebih mudah, dan mungkin lebih aman untuk dilakukan yes J | sudo pacman -S firefoxdalam kasus itu. yes Jakan menyebabkan yeskeluaran berulang Jbukannya a y.
Drew Chapin
"dan mungkin lebih aman" Bagaimana bisa begitu? Penimpaan di atas hanya memengaruhi lingkungan proses (pohon) yang dihasilkan dan diakhiri. Selanjutnya, doa di atas persis sama untuk semua lokal.
kelvin
Juga, bagaimana jika seseorang menyalin / menempel satu baris perintah seperti itu tetapi memiliki lokal di mana salah satu opsi memiliki kebalikan atau arti yang sama sekali berbeda? Contoh: J(atau Y) yang berarti "tidak" atau "semua".
kelvin