सवाल dpkg-reconfigure: stdin को फिर से खोलने में असमर्थ: कोई फ़ाइल या निर्देशिका नहीं


मैं एक के लिए एक प्रावधान स्क्रिप्ट बना रहा हूँ ubuntu vagrant vm, पर ubuntu host, दोनों 12.10 64bit निम्नलिखित संकुल अधिष्ठापन करते समय:

sudo apt-get -y install php5-xsl graphviz php-pear unison

मुझे चेतावनी मिलती है:

dpkg-reconfigure: unable to re-open stdin: No file or directory

खोज करने की कोशिश की है लेकिन परिणाम हर दूसरे त्रुटि को उपयुक्त बनाते हुए फेंक रहे हैं, यह पता नहीं लगा सकता कि ऊपर चेतावनी को कैसे दबाया जाए। इंस्टॉल काम करता है, लेकिन उपरोक्त चेतावनी योनि अप स्टडआउट में त्रुटि लाइनों का कारण बन रही है।

किसी को भी कोई विचार क्या कारण हो सकता है या चेतावनी को दबाने के लिए कैसे हो सकता है


64
2018-04-19 01:24


मूल




जवाब:


मुझे किसी भी से पहले, मेरी प्रावधान स्क्रिप्ट में निम्न डालने से त्रुटि संदेश मिल गया apt-get कॉल:

export DEBIAN_FRONTEND=noninteractive

यह बनाता है debconf एक फ्रंटएंड का उपयोग करें जो किसी भी इंटरैक्टिव इनपुट की अपेक्षा नहीं करता है, इसे एक्सेस करने का प्रयास करने से रोकता है stdin


76
2018-02-23 11:55



यह सही जवाब है। अधिकांश कॉन्फ़िगरेशन प्रबंधन अनुप्रयोग (सॉल्टस्टैक, कठपुतली, आदि) गैर-इंटरैक्टिव पैकेज इंस्टॉल के लिए इसका लाभ उठाते हैं। - notpeter
सही जवाब, मैं दूसरा। - stefgosselin
हालांकि यह dpkg-preconfigure के लिए काम नहीं करता है। - kursus


जवाब सेट करना था perl:localeप्रति के अनुसार है इस:

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

यह समस्या हल करता है, लेकिन इसमें अवांछित समय जोड़ता है vagrant up प्रावधान।


23
2018-04-19 02:41



यह अकेला मेरे लिए काम नहीं करता था। जब तक मैंने @ केनोर्ब लागू नहीं किया तब तक मुझे चेतावनी मिली 70debconf preconfigure के लिए टिप्पणी-आउट फिक्स। - Brian
मेरा सवाल है: क्या इन चेतावनियों को अनदेखा करना ठीक है? @Coombesy - Marco Prins
@ मार्कोप्रिन्स हां, आप "stdin: ttt नहीं है" या "dpkg-preconfigure: stdin को फिर से खोलने में असमर्थ: ऐसी कोई फ़ाइल या निर्देशिका" जैसी चेतावनियों को सुरक्षित रूप से अनदेखा कर सकते हैं। आसपास की कई पुष्टिओं में से एक पाया जा सकता है, उदा। यहाँ ikusalic.com/blog/2013/10/03/vagrant-intro - mloskot


इस आदेश को चलाएं:

cat /etc/apt/apt.conf.d/70debconf 

यह देखने के लिए कि क्या आपके पास यह फ़ाइल है या नहीं। यदि हां, तो समाधान टिप्पणी करना है DPkg लाइन जो सभी संकुलों को प्री-कॉन्फ़िगर करने से रोकती है debconf स्थापित होने से पहले।

तो इन आदेशों को अपनी प्रावधान फ़ाइल में जोड़ें:

sudo ex +"%s@DPkg@//DPkg" -cwq /etc/apt/apt.conf.d/70debconf
sudo dpkg-reconfigure debconf -f noninteractive -p critical

अन्यथा यदि आपको इस फ़ाइल की परवाह नहीं है, तो बस इसे हटा दें:

sudo rm -v /etc/apt/apt.conf.d/70debconf

विचार करने के लिए यहां कुछ अन्य आदेश दिए गए हैं, लेकिन मुझे नहीं लगता कि वे कुछ भी उपयोगी करते हैं:

sudo dpkg-preconfigure -f noninteractive -p critical
sudo dpkg --configure -a

5
2017-08-30 00:06



आखिरकार ओएसएक्स योसमेट वाग्रेंट और उबंटू 14.04 पर मेरे लिए काम किया गया। - Brian
आपको अभी भी खोल Vagrant उपयोगों को बदलने की आवश्यकता हो सकती है। - ToothlessRebel


बैश रीडायरेक्शन stdout और stderr के लिए ठीक काम करता है।

त्रुटि स्ट्रीम को पुनर्निर्देशित करने के लिए, निम्न का उपयोग करें:

sudo apt-get -y install php5-xsl graphviz php-pear unison 2> /dev/null

दोनों stdout को रीडायरेक्ट करने के लिए (संदेश जो त्रुटियों / चेतावनियां नहीं हैं) और stderr दोनों का उपयोग करें:

sudo apt-get -y install php5-xsl graphviz php-pear unison &> /dev/null

यह एक शॉर्टकट है जिसके लिए बैश में उपलब्ध है:

sudo apt-get -y install php5-xsl graphviz php-pear unison > /dev/null 2>&1

या:

sudo apt-get -y install php5-xsl graphviz php-pear unison 1> /dev/null 2>&1

नीचे, हम स्पष्ट रूप से देख सकते हैं कि फ़ाइल डिस्क्रिप्टर 1 stdout, 2 stderr, 3 stdin है।

$ ls -l /dev/std*
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Apr 18 19:03 /dev/stdout -> /proc/self/fd/1

तो आप जो कह रहे हैं उसके लिए आप करना चाहते हैं, आपको केवल पहले आदेश की आवश्यकता होनी चाहिए।


4
2018-04-19 01:29



मैं apt-get से सामान्य stdout गूंजने में सक्षम होना चाहता हूँ। लेकिन हो सकता है कि आप मुझे सही रास्ते पर रख सकें ... मैं थोड़ा-बाल्टी को केवल stderr भेजने की कोशिश करूंगा - चीयर्स संपादित करें: हम दोनों ने एक ही समय में टिप्पणी की - lers - cheers (फिर से) - Daithí
मैंने पोस्ट संपादित किया। बहुत आखिरी पंक्ति देखें। - BullShark