जब पैकेज समस्या का पता लगाने में असमर्थ स्थापित हो तो त्रुटि पर जारी रखें


11

जब मैं निम्नलिखित चलाता हूं:

sudo apt-get install vim abcde php5-cli

यह निम्न संदेश के साथ विफल होता है जो अपेक्षित व्यवहार है:

ई: पैकेज एबीसीड का पता लगाने में असमर्थ।

मैं इसे स्थापित करना चाहता हूं vimऔर यहां तक ​​कि अगर कोई त्रुटि है तो abcdeबस php5-cliपैकेज स्थापित करना जारी रखें । मतलब मैं apt-getसूची को जारी रखना चाहता हूं , भले ही वह कुछ पैकेजों को न पा सके।

मैंने कोशिश की:

sudo apt-get install --ignore-missing vim abcde php5-cli

जवाबों:


9

संक्षिप्त उत्तर: यह संभव है कि आप वास्तव में ऐसा नहीं करना चाहते हैं।

ऐसा क्यों है? इस विशेष कार्यक्षमता पर बहुत चर्चा हुई है। ऐसा ही एक (डुप्लिकेट) बग रिपोर्ट में है और एक यह से जुड़ा हुआ है।

बग रिपोर्ट पर चर्चा यह भी बताती है कि "--ignore- अनुपलब्ध" केवल तभी लागू होता है जब कोई पैकेज डाउनलोड करने में कोई समस्या होती है जो अन्यथा आपके -apt-get´ की जानकारी से मौजूद होनी चाहिए। यह भी यहाँ और प्रलेखन में समझाया गया है।

क्या आसपास कोई काम है?

यदि पिछले स्रोतों को पढ़ने के बाद भी आप सुनिश्चित हैं कि आप ऐसा करना चाहते हैं, तो दूसरी ओर, उपयोगकर्ता "अलेक्सांद्र लेवचुक" द्वारा निर्दिष्ट किए गए जैसे (सबॉप्टीमल बल्कि सुरक्षित) विकल्प हैं :

for i in package1 package2 package3; do
  sudo apt-get install $i
done

या यदि आप पसंद करते हैं तो न्यूनतम संशोधन के साथ एक-लाइनर:

for i in package1 package2 package3; do sudo apt-get install $i; done

यदि बहुत सारे पैकेज हैं, तो आप जोड़ सकते हैं -yताकि यह पुष्टि के लिए बार-बार न कहे:

for i in package1 package2 package3; do
  sudo apt-get install -y $i
done

या:

for i in package1 package2 package3; do sudo apt-get install -y $i; done

उम्मीद है की यह मदद करेगा।


वैसे, यदि आप मेरे जैसे कोई व्यक्ति हैं जो बैश के बजाय मछली का उपयोग करते हैं, तो आपको गोले को स्विच करने के लिए पहले "बैश" टाइप करना होगा। फिर कमांड को कॉपी और पेस्ट करें क्योंकि किसी कारण से यह फिश शेल काम नहीं करेगा। बैश के साथ ठीक काम करता है।
Ev-

1

इसे दरकिनार करने का एक तरीका यह है कि प्रत्येक पैकेज के लिए एक बार उपयुक्तता प्राप्त करें :

echo package1 package2 package3 | xargs -n 1 sudo apt-get install -y

या एक समारोह के रूप में

function install_ignore_fail { echo "$*" | xargs -n 1 sudo apt-get install -y; }

install_ignore_fail package1 package2 package3
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.