मुझे 'वर्बोज़' एप्ट-गेट एक्ज़िट कोड कैसे मिल सकता है?


12

मुझे 'वर्बोज़' एक्ज़िट कोड कैसे मिल सकता है apt-getताकि इस तरह की त्रुटियां हों

Package google-chrome is a virtual package provided by:
  google-chrome-stable 29.0.1547.76-r223446
  google-chrome-beta 30.0.1599.47-1
You should explicitly select one to install.

E: Package 'google-chrome' has no installation candidate

इस तरह डाउनलोड त्रुटियों की तुलना में एक अलग निकास कोड है

Err http://dl.google.com/linux/chrome/deb/ stable/main google-chrome-stable amd64 29.0.1547.76-r223446
  Something wicked happened resolving 'dl.google.com:http' (-11 - System error)

वर्तमान में, दोनों त्रुटियों के साथ बाहर निकलते हैं 100

मूल रूप से, मैं त्रुटियों को पहले की तरह त्रुटियों की तुलना में एक अलग कोड के साथ डाउनलोड करना चाहता हूं। यदि संभव हो, तो मैं एक अलग निकास कोड के लिए प्रत्येक विशिष्ट त्रुटि चाहूंगा, लेकिन उपरोक्त उदाहरण न्यूनतम न्यूनतम मेरी आवश्यकता है। मैं अतिरिक्त सॉफ्टवेयर (अपवाद के साथ aptitude) के बिना वेनिला उबंटू में यह कैसे कर सकता हूं ?


आप apt-get कमांड को स्क्रिप्ट में लपेट सकते हैं जो आउटपुट को पार्स करता है। या क्या वह "अतिरिक्त सॉफ़्टवेयर" के रूप में गिना जाता है? इसके अलावा, डाउनलोड त्रुटियों का पता लगाने के लिए, apt-get --download-onlyपहले करने पर विचार करें ।
जोस

आह, यह समझ में आता है। शायद आप पहले पैकेज X के अस्तित्व को सत्यापित कर सकते हैं apt-cache policy X?
जोस

फिर, आपको आउटपुट को टटोलना होगा। मेरा मानना ​​है कि ऐसा करने से apt-cache policy google-chromeआपको "कैंडिडेट" शब्द के साथ एक लाइन नहीं मिलती है, जबकि apt-cache policy google-chrome-stableऐसा होता है।
जोस

ठीक। मैं इस चर्चा को चैट में प्रवेश कर रहा हूं और इस सुझाव को एक (आंशिक) उत्तर के रूप में दर्ज कर रहा हूं।
जोस

जवाबों:


1

पूर्ण उत्तर नहीं है, लेकिन आप पहले apt-cache policy X"कैंडिडेट (कोई नहीं)" या "पैकेज एक्स नहीं पा सके", इत्यादि के लिए आउटपुट कर और पैकेज करके पैकेज के अस्तित्व के लिए परीक्षण कर सकते हैं।


अभी के लिए अपवित्र, लेकिन जैसा कि आपने कहा, यह आंशिक है। अपनी सभी टिप्पणियों को हटाने के लिए स्वतंत्र महसूस करें जो अब एक उत्तर में है। आपकी मदद के लिए धन्यवाद
kiri

15

मेरा मानना ​​है कि यह एक्सवाई का मामला नहीं है, और आप सिर्फ आम तौर पर बोलने वाले डीबग करने में सक्षम होना चाहते हैं। ऐसी धारणाओं के तहत यहां मेरा जवाब है।

से man apt.conf:

DEBUG विकल्प

डीबग :: अनुभाग में विकल्प सक्षम करने से डिबगिंग जानकारी को प्रोग्राम के मानक त्रुटि स्ट्रीम में भेजा जा सकता है, जो उपयुक्त पुस्तकालयों का उपयोग करता है, या विशेष प्रोग्राम मोड को सक्षम करता है जो मुख्य रूप से उपयुक्त व्यवहार को डीबग करने के लिए उपयोगी होते हैं।

इसलिए, आपको केवल प्रत्येक डीबगिंग व्यवहार के लिए नियमों को सक्रिय करने की आवश्यकता है apt-get:

  • डीबग :: pkgProblemResolver : डिस्ट-अपग्रेड, अपग्रेड, इंस्टॉल, रिमूव, पर्ज द्वारा किए गए फैसलों के बारे में आउटपुट को सक्षम करता है।
  • डीबग :: NoLocking : सभी फ़ाइल लॉकिंग को अक्षम करता है। इसका उपयोग गैर-रूट उपयोगकर्ता के रूप में कुछ ऑपरेशन (उदाहरण के लिए, apt-get -s install) चलाने के लिए किया जा सकता है।
  • डीबग :: pkgDPkgPM : वास्तविक कमांड लाइन को हर बार प्रिंट करता है जो ap dpkg (1) को आमंत्रित करता है।

वे 3 पहले हैं जो मैन पेज की सिफारिश करते हैं, और पहले आपको दिखाए गए पहले त्रुटि को डीबग करने में मदद करेंगे। दूसरे के लिए आपको आवश्यकता हो सकती है:

  • डीबग :: एक्वायर्ड :: http : HTTP का उपयोग करके पैकेज डाउनलोड करने से संबंधित जानकारी प्रिंट करें। वहाँ भी है https, ftp, cdrom

मैन पेज में कई और हैं, आप आसानी से उपयोग करके उन्हें सूचीबद्ध कर सकते हैं man apt.conf | grep -A5 -i debug

यह सब सही वाक्यविन्यास का उपयोग करके लिखा जाना चाहिए और वे बूलियन मूल्यों को स्वीकार करते हैं:

Debug::*::*  "true";

या यदि आप कई लाइनों का उपयोग करना चाहते हैं:

Debug {
  Acquire {
    http "true";
    ftp "true";
  };
  NoLocking "true";
};

यदि आप केवल उदाहरण के लिए चलाना चाहते हैं तो आप -o/ --optionस्विच का उपयोग कर सकते हैं :

sudo apt-get -o Debug::pkgProblemResolver=true -o Debug::Acquire::http=true -f install 

एक अन्य विधि आपकी वैयक्तिकृत कॉन्फ़िगरेशन फ़ाइल बना रही है और इसे -c/ --config-fileस्विच के साथ लोड करती है :

sudo apt-get -c debug-apt.conf install hello

निकास कोड बदलने के बारे में, मेरा मानना ​​है कि आप तब तक नहीं कर सकते जब तक आप स्रोत कोड नहीं बदलते। सॉफ्टवेयर के apt-getएक अत्याधुनिक टुकड़े की स्थिति है, क्योंकि इसमें बाहर निकलने के कोड पर निर्भर होने की आवश्यकता के बिना प्रक्रिया को डीबग करने के लिए उन्नत तरीके हैं।


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

मैं भी केवल एक विशिष्ट उदाहरण के लिए ऐसा करना चाहूंगा apt-get, हर समय नहीं।
गिरि

@ minerz029 आप -oतदर्थ कमांड चलाने के लिए विकल्प का उपयोग कर सकते हैं । मेरे उत्तर को अपडेट किया।
Braiam

पहली टिप्पणी के बारे में, आपको आउटपुट पार्स करने के साथ कुछ चतुर करना चाहिए। मेरे पास दृष्टिहीन विचार नहीं है कि आप ऐसा कैसे कर सकते हैं।
Braiam

apt-cache policy PACKAGEजैसा कि जोस ने कहा, मुझे वास्तव में इसके उत्पादन को बढ़ाने के साथ काम करना था । मैं यह जांचने की कोशिश कर रहा था कि क्या कोई पैकेज स्थापित करने योग्य था, मैंने अपना प्रश्न ठीक से नहीं पूछा होगा, लेकिन यह एक अच्छा उत्तर है
किरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.