Jika saya menggunakan apt-get install -qq mono-devel
, saya mengharapkannya diam kecuali untuk kesalahan, sesuai dengan bantuan:
-qq No output except for errors
Sebaliknya saya mendapatkan:
Extracting templates from packages: 100%
Selecting previously unselected package binfmt-support.
(Reading database ... 84711 files and directories currently installed.)
Unpacking binfmt-support (from .../binfmt-support_2.0.8_i386.deb) ...
Selecting previously unselected package cli-common.
Unpacking cli-common (from .../cli-common_0.8.2_all.deb) ...
Selecting previously unselected package libgdiplus.
Unpacking libgdiplus (from .../libgdiplus_2.10-3_i386.deb) ...
Selecting previously unselected package libmono-2.0-1.
Unpacking libmono-2.0-1 (from .../libmono-2.0-1_2.10.8.1-1ubuntu2.2_i386.deb) ...
Selecting previously unselected package libmono-2.0-dev.
Unpacking libmono-2.0-dev (from .../libmono-2.0-dev_2.10.8.1-1ubuntu2.2_i386.deb) ...
Selecting previously unselected package libmono-corlib4.0-cil.
Unpacking libmono-corlib4.0-cil (from .../libmono-corlib4.0-cil_2.10.8.1-1ubuntu2.2_all.deb) ...
Selecting previously unselected package libmono-system-xml4.0-cil.
Unpacking libmono-system-xml4.0-cil (from .../libmono-system-xml4.
dan banyak lagi ...
Bahkan, beberapa ratus baris bernilai output. Ini tampaknya tidak cocok dengan no output except for errors
.
Bagaimana saya bisa apt-get install
mencetak hanya ketika ada kesalahan sehingga tidak menginstal?
--quiet
opsi yang tampaknya tidak berfungsi dengan benar.Jawaban:
Halaman manual untuk apt-get adalah sebagai berikut:
The
-q
atau-qq
bendera harus pergi sebelum perintah, seperti:apt-get -qq upgrade
sumber
-q
benar-benar berfungsi (tidak ada output "animasi") dan juga-qq
(tidak ada output kecuali kesalahan). Harap menang!-qq
sebelum menginstal perintah saya masih mendapatkan banyak sampah semua dari membaca database hingga membongkar dan mengatur pesan.sudo apt-get -qq -y install mercurial
,sudo apt-get install -qq -y mercurial
,sudo apt-get -qq install -qq -y mercurial
dan variasi lainnya yang melibatkan lebih q ini (meskipun saya tidak melihat dokumentasi yang menunjukkan ini akan bekerja. Aku sedang menjalankan Debian Jessie di google cloud btw (8). Saya juga mencoba Goetz ini menjawab dan tampaknya tidak berfungsidpkg
, yang dipanggil olehapt-get
. Perintahnya adalahapt-get -qq update && apt-get -qq upgrade && apt-get -qq install build-essential
. Lihat gist.github.com/stefanlasiewski/...&&
bergabung dengan mereka (mungkin bekerja, tetapi itu bukan "cara buruh pelabuhan") (2) mengarahkan output ke / dev / null seperti di jawaban lainnya. Opsi 2 mungkin merupakan taruhan terbaik Anda saat ada bug ini.Pengalihan sederhana dapat melakukan ini. Ini tidak persis apa yang ada dalam pikiran Anda, saya yakin, tapi itu pasti berhasil :)
Singkatnya, pukul
> /dev/null
saja perintah apa pun di mana Anda ingin mengarahkan semuastdout
ke ketiadaan. Hal-hal yang dihasilkanstderr
masih akan ditampilkan di konsol.Tidak ada sampah! Dan inilah yang terjadi jika kita bodoh dan merusak sesuatu:
sumber
sudo
di depanapt-get
. Anda hanya akansudo
menjalankan skrip saja.sudo apt-get upgrade -qq --force-yes > /dev/null
.-qq
menyiratkan-y
, seperti kata WulfHart, dan--force-yes
membuatnya membajak melalui apa saja.stdout
(melihat kesalahan adalah hal yang diinginkan IMO).Kami menghadapi masalah yang sama.
apt-get install -qq
menghapus sebagian besar output tetapi menjengkelkan "(Membaca basis data ..." masih tetap ada.Kami melihat sumber apt dan menemukan bahwa output dihasilkan oleh dpkg yang bercabang oleh apt. Kemudian sumber dpkg menunjukkan bahwa soutput yang mengganggu hanya dikeluarkan ketika isatty (1) benar. Ini hanya terjadi ketika garpu menggunakan pty sebagai pengganti pipa. Kembali ke apt, ada variabel konfigurasi tidak berdokumen yang memungkinkan untuk menggunakan pty pipa yang kemudian memecahkan masalah:
Berharap itu bisa membantu orang lain.
sumber
-o=Dpkg::Use-Pty=0
bekerja sempurna pada Ubuntu 18.04. Ini hanya menampilkan satu "Membaca basis data" daripada beberapa yang dengan pembaruan kemajuan setiap 5%.Seperti yang dapat Anda lihat di sini dan di sini
Anda dapat melakukannya:
Atau satu baris:
sumber