Apt-get kurulumunu daha az gürültülü hale nasıl getiririm?


128

Ben kullanırsanız apt-get install -qq mono-devel, yardım göre, hatalar haricinde sessiz olmasını bekliyoruz:

-qq No output except for errors

Bunun yerine alıyorum:

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.

ve dahası ...

Aslında, birkaç yüz satır değerinde çıktı. Bu eşleşmiyor gibi görünüyor no output except for errors.

Nasıl Aslında alırım apt-get installyazdırmak için sadece hataları yükleyerek onu orada tutuyor ki?


-Q = # kullanarak denediniz mi # # sessiz bir seviyedir? (Kılavuzda.) Buna karşı bir hata raporu hazırlamak isteyebilirsiniz.
Paddy Landau

@PaddyLandau Gerçekten yaptım. Neden daha önce seçilmemiş bir paket seçmekten bahsettiğini ya da bunun neden önemli olacağını bilmiyorum ve bunun üzerinde de çalıştığım vms'nin durumu ile ilgili olup olmadığından emin değilim, travis-ci . Ancak cevap iyi çalıştı.
jbtule

"Daha önce seçilmemiş bir paket seçmek" sadece paket yöneticisinin bağımlılıkları karşılamak için gerekli bir paket içerdiği anlamına gelir. Daha önce de yazdığım gibi, --quietdüzgün çalışmamak için görünen seçenekle ilgili bir hata raporu hazırlamak isteyebilirsiniz .
Paddy Landau

Aynı semptomu Ubuntu 15.04 20150709'da bildirmekten mutsuzum.
Lloyd Dewolf

Bu, 2009 dpkg sorun raporu ile ilgili gibi görünüyor: bugs.debian.org/cgi-bin/bugreport.cgi?bug=539617 .
Lloyd Dewolf

Yanıtlar:


83

Apt-get için man sayfası aşağıdaki gibidir:

NAME
       apt-get - APT package handling utility -- command-line interface

SYNOPSIS
       apt-get [-asqdyfmubV] [-o=config_string] [-c=config_file] [-t=target_release]
               [-a=architecture] {update | upgrade | dselect-upgrade | dist-upgrade |
               install pkg [{=pkg_version_number | /target_release}]...  | remove pkg...  |
               purge pkg...  | source pkg [{=pkg_version_number | /target_release}]...  |
               build-dep pkg [{=pkg_version_number | /target_release}]...  |
               download pkg [{=pkg_version_number | /target_release}]...  | check | clean |
               autoclean | autoremove | {-v | --version} | {-h | --help}}

-qVeya -qqbayrak gitmeli önce şöyle, komuta:

apt-get -qq upgrade


3
Bu doğru cevap! Herhangi bir pratik uygulama bilgi istemlerini korumalıdır. Doğru kullanılır, -qkesinlikle çalışır ("animasyonlu" çıktı yok) yanı sıra -qq(hata dışında çıktı yok). Lütfen oyla!
Charney Kaye

27
Hayır, işe yaramadı. İnstall -qqkomutundan önce bile veritabanını okumaktan ve mesajları açmaktan her şeyi tonlarca önemsiz alıyorum.
CrazyCasta

2
Eh, ben denedim sudo apt-get -qq -y install mercurial, sudo apt-get install -qq -y mercurial, sudo apt-get -qq install -qq -y mercurialve ilgili diğer varyasyonları da fazla q (Ben bu işe ettiğini ortaya koydu herhangi bir belge görmüyorum bile. Google bulut Debian Jessie çalıştırıyorum btw (8). Ben de denedim Goetz adlı cevap ve o da işe yaramadı gibi görünmüyor sanırım işe yaramazsa fark etmedim demek istiyorum
CrazyCasta

3
Bu, Docker kabı olarak çalışan Ubuntu 16.04.1'dir. Tahminim, mesajların aslında dpkgdenilen mesaj olduğu apt-get. Komut apt-get -qq update && apt-get -qq upgrade && apt-get -qq install build-essential. Bakınız gist.github.com/stefanlasiewski/…
Stefan Lasiewski

3
Docker'da 2 seçeneğiniz vardır: (1) her komutu &&birleştirmek yerine ayrı ayrı çalıştırın (işe yarayabilir, ancak "docker yolu" değildir) (2) çıktıyı / dev / null komutuna diğer cevapta olduğu gibi yönlendirir. Seçenek 2 muhtemelen bu hata varken en iyi bahis.
Mike,

54

Basit bir yönlendirme bunu yapabilir. Tam olarak aklınızdaki şey değildi, eminim ama cehennemin işe yarayacağından eminim :)

Kısacası, sadece tüm yönelimlere > /dev/nullyönlendirmek istediğiniz herhangi bir komutun sonuna stdoutatlayın. Çıktılan şeyler stderrhala konsolda gösterilecektir.

$ sudo apt-get update > /dev/null
[sudo] password for oli: 
$ 

Önemsiz yok! Ve işte aptal ve bir şeyi kırarsak ne olur:

$ apt-get cheese > /dev/null
E: Invalid operation cheese
$


1
Bu bir komut dosyası parçası ise sudo, önüne koymak olmaz apt-get. Sen sadece sudobetiği çalıştırırken yaparsın .
Xion

3
@Oli Sisteminizin ateş almasına neden olamayacağınızdan kesinlikle eminseniz, her zaman olabilirsiniz sudo apt-get upgrade -qq --force-yes > /dev/null. WulfHart'ın dediği gibi -qqima eder -yve --force-yesonu hemen hemen her şeyden geçirir.
JamesTheAwesomeDude 26:13

2
@Vorac Hayır sadece yönlendiriyor stdout(hataları görmek IMO'nun istediği bir şeydir).
Oli

3
Bu sorunun cevabı değil; bu bir geçici çözüm.
Charney Kaye

42

Aynı problemle karşılaştık. apt-get install -qqÇıktıların çoğunu kaldırır ancak sinir bozucu "(Veri tabanı okunuyor ..." devam ediyor.

Apt kaynağına bir göz attık ve çıktının apt tarafından çatallanan dpkg tarafından üretildiğini keşfettik. Sonra dpkg kaynağı sinir bozucu soutput sadece isatty (1) doğru olduğunda verilir. Bu sadece çatal boru yerine pty kullandığında geçerlidir. Apt'ye döndüğünde, daha sonra sorunu çözen pty yerine pipo kullanmaya izin veren belgelenmemiş bir yapılandırma değişkeni vardır:

apt-get install -qq -o=Dpkg::Use-Pty=0 <packages>

Bunun başkalarına yardım edebileceğini ummak.


2
Aslında bu tam doğru cevap. Ayrıca single -q ile apt-get
komutunu

1
Bunu gcloud debian jessie (8) üzerinde deniyorum ve hala veritabanı satırlarını okuyordum ve satırları açıyorum / kuruyorum.
CrazyCasta

3
Bu cevap Ubuntu 18.04 için çalışmıyor.
Amedee Van Gasse,

1
/ Seçme Hazırlama / hatları kurma bir demet ... hala var
Hayd

1
-o=Dpkg::Use-Pty=0Ubuntu 18.04 üzerinde mükemmel çalıştı. Her% 5 oranında ilerleme güncellemesi olan birden çok sürüm yerine yalnızca bir "Okuma veritabanı" gösterir.
wisbucky

2

Gördüğünüz gibi burada ve burada
bunu yapabilirsiniz:

export DEBIAN_FRONTEND=noninteractive
apt-get -yq install [packagename]
export DEBIAN_FRONTEND=dialog

Veya bir satır:

DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.