मैं उपयुक्त शोर कम स्थापित कैसे करूँ?


128

यदि मैं उपयोग करता हूं apt-get install -qq mono-devel, तो मुझे उम्मीद है कि यह त्रुटियों के अलावा शांत हो जाएगा, मदद के अनुसार:

-qq No output except for errors

इसके बजाय मुझे मिलता है:

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.

और अधिक ...

वास्तव में, उत्पादन के लायक कुछ सौ लाइनें। इससे मेल नहीं खाता no output except for errors

कैसे मैं वास्तव में मिलता है apt-get installबाहर मुद्रित करने के लिए केवल जब वहाँ त्रुटियों को इंस्टॉल करने से यह रख रहे हैं?


क्या आपने उपयोग करने का प्रयास किया है -q = # जहां # एक शांत स्तर है? (यह मैनुअल में है।) आप इसके खिलाफ एक बग रिपोर्ट उठाना चाह सकते हैं।
धान लैंडौ

@ IPaddyLandau मैंने वास्तव में किया था। मुझे नहीं पता कि यह पहले से अचयनित पैकेज का चयन करने की बात क्यों कर रहा है या यह महत्वपूर्ण क्यों होगा, और मुझे यकीन नहीं है कि यह उन vms की स्थिति से संबंधित है जिन पर मैं इन पर चल रहा हूं, ट्रैविस-सीआई । लेकिन जवाब अच्छा काम किया।
jbtule

"पहले से अचयनित पैकेज का चयन" बस का अर्थ है कि पैकेज प्रबंधक निर्भरता को संतुष्ट करने के लिए आवश्यक पैकेज सहित है। जैसा कि मैंने पहले लिखा था, आप --quietसही तरीके से काम नहीं करने के विकल्प के बारे में एक बग रिपोर्ट उठाना चाह सकते हैं ।
धान लैंडौ

मैं उबंटू 15.04 20150709 में वही लक्षण बताकर दुखी हूं।
लॉयड डेवोल्फ

ऐसा लगता है कि यह 2009 के dpkg समस्या रिपोर्ट से संबंधित है: bugs.debian.org/cgi-bin/bugreport.cgi?bug=539617
लॉयड डेफॉल्ग

जवाबों:


83

Apt-get के लिए मैन पेज इस प्रकार है:

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}}

-qया -qqझंडा जाना चाहिए से पहले , आदेश तो जैसे:

apt-get -qq upgrade


3
यह सही जवाब है! किसी भी व्यावहारिक कार्यान्वयन को संकेतों को संरक्षित करने की आवश्यकता है। सही तरीके से उपयोग किया गया, -qबिल्कुल काम करता है (कोई "एनिमेटेड" आउटपुट) और साथ ही -qq(त्रुटियों के अलावा कोई आउटपुट नहीं)। कृपया upvote!
चरनी केय

27
नहीं, यह काम नहीं करता है। यहां तक ​​कि -qqइंस्टाल कमांड से पहले भी मुझे डेटाबेस पढ़ने से लेकर अनपैकिंग और मैसेज सेट करने तक हर चीज का जंक मिलता है।
क्रेजीकस्टा

2
ठीक है, मैं कोशिश की है sudo apt-get -qq -y install mercurial, sudo apt-get install -qq -y mercurial, sudo apt-get -qq install -qq -y mercurialऔर अन्य को शामिल विविधताओं और भी अधिक क्ष के (हालांकि मैं किसी भी प्रलेखन चलता है कि यह काम करेगा नहीं दिख रहा है। मैं google क्लाउड पर डेबियन जेसी चल रहा हूँ btw (8)। मैं भी कोशिश की है गोएज़ के जवाब और यह काम करने के लिए प्रतीत नहीं होता है। काम करने के लिए प्रतीत नहीं होता है मेरा मतलब है कि मुझे कोई अंतर नहीं
दिखता है

3
यह उबंटू 16.04.1 है, जो डॉकटर कंटेनर के रूप में चल रहा है। मेरा अनुमान है कि संदेश वास्तव में हैं dpkg, जिसे कहा जाता है apt-get। आज्ञा है apt-get -qq update && apt-get -qq upgrade && apt-get -qq install build-essentialGist.github.com/stefanlasiewski/…
स्टीफन लासवर्स्की

3
डॉकटर में आपके पास 2 विकल्प हैं: (1) प्रत्येक कमांड को जोड़ने के बजाय अलग से चलाएं &&(काम हो सकता है, लेकिन यह "docker तरीका" नहीं है) (2) आउटपुट को अन्य उत्तर की तरह / dev / null में रीडायरेक्ट करता है। विकल्प 2 शायद आपकी सबसे अच्छी शर्त है जबकि यह बग है।
माइक

54

एक साधारण पुनर्निर्देशन ऐसा कर सकता है। यह बिल्कुल वैसा नहीं है जैसा आपके मन में था, मुझे यकीन है, लेकिन यह निश्चित है कि नरक काम करता है :)

संक्षेप में, बस > /dev/nullकिसी भी कमांड के अंत में जहां आप सभी कुछ नहीं stdoutमें पुनर्निर्देशित करना चाहते हैं के अंत में अजीब । आउटपुट की गई चीजें stderrअभी भी कंसोल में दिखाई देंगी।

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

कोई जंक नहीं! और अगर हम मूर्खतापूर्ण हैं और कुछ तोड़ते हैं तो यहां क्या होता है:

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

7
अगर आपको प्रॉम्प्ट हो जाए तो यह थोड़ा
मुश्किल है

1
यदि यह एक स्क्रिप्ट का हिस्सा है, तो आप sudoसामने नहीं रखेंगे apt-get। आप sudoइसके बजाय स्क्रिप्ट चला रहे हैं।
जिओन

3
@ ओली अगर आपको पूरा यकीन है कि आप अपने सिस्टम को आग में नहीं डालेंगे, तो आप हमेशा सकते हैं sudo apt-get upgrade -qq --force-yes > /dev/null-qqइसका मतलब है -y, जैसा कि WulfHart ने कहा है, और --force-yesयह किसी भी चीज़ के बारे में बताता है।
जेम्स दिवाली

2
@Vorac नहीं, यह सिर्फ पुनर्निर्देशित है stdout(त्रुटियों को देखना वांछनीय बात है IMO)।
ओली

3
यह सवाल का जवाब नहीं है; यह एक समाधान है।
चरनी काये

42

हमने उसी समस्या का सामना किया। apt-get install -qqअधिकांश आउटपुट निकालता है लेकिन कष्टप्रद "(डेटाबेस पढ़ना ..." अभी भी जारी है।

हमने apt के स्रोत पर एक नज़र डाली और पता चला कि आउटपुट dpkg द्वारा निर्मित है जिसे apt द्वारा फोर्क किया गया था। फिर dpkg के स्रोत से पता चलता है कि कष्टप्रद soutput केवल तभी जारी किया जाता है जब isatty (1) सत्य होता है। यह केवल मामला है जब कांटा पाइप के बजाय पेंटी का उपयोग करता है। पीछे की ओर, एक अनकम्फर्ड कॉन्फ़िगरेशन चर है जो पाइप को पीटी के बजाय उपयोग करने की अनुमति देता है जो तब समस्या को हल करता है:

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

अपेक्षा करना जो दूसरों की मदद कर सके।


2
वास्तव में यह पूर्ण सही उत्तर है। यह भी एकल चलाने के साथ
aq

1
मैं gcloud debian jessie (8) पर यह कोशिश कर रहा हूं और मुझे अभी भी डेटाबेस लाइनें पढ़ना और लाइनों को खोलना / खोलना मिल रहा है।
क्रेजीकास्ट

3
यह उत्तर उबंटू 18.04 के लिए काम नहीं करता है।
एमी वैन गैसे

1
अभी भी लाइनों का चयन / तैयारी / स्थापना करने का एक समूह है ...
23

1
-o=Dpkg::Use-Pty=0उबंटू 18.04 पर सही काम किया। यह केवल प्रत्येक 5% प्रगति अद्यतन वाले कई लोगों के बजाय एक "रीडिंग डेटाबेस" दिखाता है।
बुद्धिमानबीज

2

जैसा कि आप यहाँ और यहाँ
देख सकते हैं आप कर सकते हैं:

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

या एक पंक्ति:

DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.