apt का कहना है कि संकुल को वापस रखा गया है, क्या करना है?


23

का आउटपुट apt-get upgradeहै:

The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl

इसका क्या मतलब है? क्या मुझे कार्रवाई करनी चाहिए? यदि ऐसा है तो क्या?

जवाबों:


37

त्वरित और आसान समाधान:

मेरे पास एक ही मुद्दा है, कई बार। न करें ऐसा sudo apt-get dist-upgradeपहले। बहोत महत्वपूर्ण। **** नोट: यह समाधान डेबियन आधारित मशीनों के लिए है, लेकिन केडीई नियॉन पर काम नहीं करेगा । केडीई नियॉन को अपडेट करने के लिए, आपको उपयोग करना होगा । ****sudo pkcon update

क्यों?

यह आपके सिस्टम को बहुत अस्थिर बना सकता है, प्रोग्राम क्रैश हो सकते हैं और आप अपने ओएस में बहुत अधिक कार्यक्षमता खो सकते हैं।

आप चाहिए प्रत्येक पैकेज को व्यक्तिगत रूप से स्थापित करते हैं, हालांकि , कि प्रक्रिया के दौरान, अन्य निर्भरता भी स्वतः स्थापित हो जाएगा और आपकी समस्या बस कुछ ही मिनटों में हल कर दिया जाएगा।

मेरे पास निम्नलिखित समाधान के साथ कोई समस्या नहीं है। यह काफी त्वरित और आसान है।


सबसे पहले, यह करें:

apt list --upgradable

  • यह उन पैकेजों की एक सूची दिखाएगा जिन्हें अपग्रेड किया जा सकता है।

अगला, यह करें:

  • पहले पैकेज और प्रकार के साथ सूची की शुरुआत में शुरू करें:

sudo apt-get install package-name-here

  • यह स्थापना प्रक्रिया के माध्यम से चलेगा और निर्भरता को खींच / स्थापित करेगा।

उस प्रक्रिया के पूरा होने के बाद, यह करें:

apt list --upgradable

  • यह फिर से दिखाएगा कि कौन से पैकेज अपग्रेड किए जा सकते हैं। पैकेजों की आपकी सूची अब कम होनी चाहिए। पैकेजों की सूची का पालन करें और apt list --upgradableप्रत्येक पैकेज स्थापित करने के बाद टाइप करें । इसे पूरा करने में केवल कुछ मिनट लगने चाहिए।

आखिरकार:

sudo apt-get autoclean

sudo apt-get update && sudo apt-get dist-upgrade

यदि यह समाधान आपके लिए काम करता है, तो कृपया इसे आगे बढ़ाना न भूलें ताकि सही समाधान दूसरों के लिए उपलब्ध हो और उत्तर की सूची में सबसे ऊपर हो।

यदि किसी कारण से यह समाधान आपके लिए काम नहीं करता है, तो कृपया नीचे उपयोगकर्ता GAD3R का उत्तर देखें। यह एक अच्छा उपाय भी है।

धन्यवाद।


1
मेरे लिए पैकेज उबंटू-न्यूनतम था। आपके निर्देशों ने पूरी तरह से काम किया।
डीनएम

यदि आप केडीई नियॉन पर हैं तो इस समाधान का उपयोग न करें।
ग्रेगरी स्मिथरमैन

11

इसका क्या मतलब है?

The following packages have been kept back:

जवाब यहाँ है

इसका मतलब है कि इन पैकेजों के नए संस्करण हैं जो किसी कारण से स्थापित नहीं होंगे। संभावित कारण टूटी हुई निर्भरताएं हैं (एक पैकेज जिस पर यह निर्भर करता है कि उसके पास डाउनलोड के लिए कोई संस्करण उपलब्ध नहीं है) या नई निर्भरताएं (पैकेज पिछले संस्करण से नए पैकेजों पर निर्भर होने के लिए आया है)।

क्या मुझे कार्रवाई करनी चाहिए?

आपको dist-upgradeनई निर्भरताएं स्थापित करने और पैकेजों को अपग्रेड करने के लिए उपयोग करने की आवश्यकता है:

sudo apt-get dist-upgrade

समस्या को हल dist-upgradeकरने के लिए यदि आप की जरूरत नहीं है द्वारा हल किया जा सकता है :

टूटी हुई निर्भरता को ठीक करें

sudo apt-get -f install 

कुछ संकुल निकालें जो अब आपके सिस्टम पर संस्थापित नहीं हैं:

sudo apt-get autoclean

वांछित पैकेज को होल्ड पर रखें:

echo "<package_name> hold" | dpkg --set-selections

नामित पैकेज को फिर से कॉन्फ़िगर करें:

dpkg-reconfigure <package_name>

3

से इस यूनिक्स एसई जवाब :

सबसे पहले जैसा कि ऊपर उल्लेख किया गया है, कृपया किसी भी उत्पादन प्रणाली को अपग्रेड न करें! जबकि जिले के अपग्रेड होने देगा "हल" वापस संकुल रखा यह निश्चित रूप से इस मुद्दे का हल नहीं है और होगा काफी संभावना आप अच्छे से अधिक दु: ख यदि आप इसे अपने सिस्टम पर प्रभाव जानने के बिना चलाने के कारण।

यदि पैकेज को अपग्रेड करने के लिए अतिरिक्त पैकेज स्थापित करने की आवश्यकता होती है, तो इसे चालू करते समय "वापस रखा जाएगा" sudo apt-get upgrade

जैसा कि ऊपर उल्लेख किया गया है कि आप इन "पैकेज को वापस" पैकेज को स्पष्ट रूप से चलाकर स्थापित कर सकते हैं, sudo apt-get install [paste kept back packages here]लेकिन यह इन पैकेजों को "मैन्युअल रूप से स्थापित" के रूप में चिह्नित करेगा, जो अक्सर हम चाहते हैं।

स्वचालित रूप से "रन बैक" पैकेजों को चिह्नित नहीं करते हुए "रखे गए" पैकेज को अपग्रेड करने के लिए आवश्यक किसी भी अतिरिक्त पैकेज को स्वचालित रूप से स्थापित करने के लिए स्थापित करें sudo apt-get --with-new-pkgs upgrade


अधिक के बारे में --with-new-pkgsऔर अन्य विकल्पों के साइड इफेक्ट यहाँ
पाब्लो ए

2

मैंने इस जवाब को अपने ब्लॉग में शामिल किया। अगर आप देखना चाहते हैं कि आप इस लिंक से वहां जा सकते हैं ।

उबंटू टर्मिनल में उपरोक्त त्रुटि बहुत आम है जब आप अपग्रेड करने की कोशिश करते हैं ( apt-get upgrade)। यह आमतौर पर होता है क्योंकि आपके द्वारा स्थापित एक पैकेज की निर्भरता बदल गई है। अपग्रेड करने के लिए आपको उन्हें पहले अपग्रेड करना होगा। इसलिए इसका हल निकालना बहुत सीधा है। आप उन पैकेजों को देख पाएंगे जो इस त्रुटि संदेश के नीचे रखे थे। एक उदाहरण के रूप में मैं सूची में निम्नलिखित संकुल देख सकता हूँ:

gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

केवल टाइप न करें sudo apt-get dist-upgradeयह बहुत खतरनाक है क्योंकि यह सभी लंबित अपडेट स्थापित करता है। यह आपके काम के माहौल को अत्यधिक अस्थिर स्थिति में ले जा सकता है।

इसलिए मेरा मत प्रसिद्ध का उपयोग करना है

sudo apt-get install [package]

[package]त्रुटि संदेश में जो भी पैकेज है, उसे आप बदल सकते हैं । इसके अलावा, आप उन्हें एक सूची के रूप में रख सकते हैं (बस इसे कॉपी और पेस्ट करें)। मेरे मामले में एक उदाहरण के रूप में मैं प्रवेश कर सकता हूं

sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

अगर आप करना चाहते हैं

sudo apt-get dist-upgrade

किसी कारण से, बस अनुकरण विकल्प -s( sudo apt-get -s dist-upgrade) का उपयोग करके संकुल की सूची का निरीक्षण करना सुनिश्चित करें , या -sविकल्प के बिना आप स्वीकार करने से पहले निष्पादन को समाप्त कर सकते हैं। (आप हमेशा विकल्प नहीं चुन सकते हैं)


2

हाल ही में एक डेबियन सुरक्षा अद्यतन ने कुछ नई निर्भरताएं पेश कीं। इस मामले में linux-imageपैकेज की आवश्यकता linux-firmwareकुछ अन्य लोगों के बीच शुरू हुई । इसलिए उन्हें वापस आयोजित किया गया था और उनके द्वारा स्थापित नहीं किया गया था unattended-upgrade। कुछ परीक्षण और पुष्टि के बाद, मैं अन्य लंबित अद्यतनों को न छूते हुए केवल उन पैकेजों को चुनिंदा रूप से स्थापित करने में सक्षम था :

apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')


1

यह आलेख संक्षेप में बताता है कि ऐसा क्यों होता है:

यदि आपके द्वारा स्थापित पैकेजों में से एक पर निर्भरताएं बदल गई हैं, ताकि नवीनीकरण करने के लिए एक नया पैकेज स्थापित किया जाना चाहिए, तो उसे "रखे-वापस" के रूप में सूचीबद्ध किया जाएगा।

इसका समाधान उन्हें स्पष्ट रूप से स्थापित करना है

sudo apt install [packages]

आप शायद इन पैकेजों को स्वचालित रूप से स्थापित करना चाहते हैं, जब तक कि आप उनके बारे में खुद की परवाह न करें और केवल निर्भरता को संतुष्ट न करें।

sudo apt-mark auto [packages]

इसे पहली जगह में होने से रोकने के लिए, मैं उपयोग करने की सलाह देता हूं

sudo apt --with-new-pkgs upgrade

भविष्य में पैकेज को अपग्रेड करने के लिए, जो निर्भरता में परिवर्तन को संतुष्ट करने के लिए नए पैकेजों की स्थापना की अनुमति देता है।


दो अंगूठे के लिए --with-new-pkgs! और मुझे फिर से इस बात पर जोर देने दें कि, " किसी भी उत्पादन प्रणाली को अपग्रेड न करें ! जबकि डिस्ट-अपग्रेड करने से पैकेज वापस रखा जाएगा" यह निश्चित रूप से इस मुद्दे का समाधान नहीं है और यदि आप अच्छे से ज्यादा दुःख का कारण बनेंगे। अपने सिस्टम पर निहितार्थ जाने बिना इसे चलाएं। "
xpt
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.