सवाल "निम्नलिखित पैकेज वापस रखे गए हैं:" मैं इसे कैसे हल करूं?


मैंने अभी जीआईएमपी के विकास संस्करण के लिए एक पीपीए भंडार जोड़ा है, लेकिन मुझे यह त्रुटि मिलती है:

$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
  gimp gimp-data libgegl-0.0-0 libgimp2.0

मैं इसे कैसे और कैसे हल कर सकता हूं ताकि मैं अब मेरे बजाय नवीनतम संस्करण का उपयोग कर सकूं?


720
2017-07-31 21:59


मूल


कड़ाई से बोलते हुए, मैं कहूंगा कि एक चेतावनी है, कोई त्रुटि नहीं। - Kazark


जवाब:


इसके अनुसार डेबियन-administration.org पर एक लेख,

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

सतर्क समाधान 1:

सतर्क समाधान चलाने के लिए है sudo apt-get install <list of packages kept back>। ज्यादातर मामलों में यह रखे हुए पैकेज को देगा जो उन्हें सफलतापूर्वक अपग्रेड करने की आवश्यकता है।

सतर्क समाधान 2:

प्रति पाब्लो का जवाब, तुम दौड़ सकते हो sudo apt-get --with-new-pkgs upgrade, और यह रखे हुए पैकेज को स्थापित करेगा।

इसका रख-रखाव पैकेज को "मैन्युअल रूप से स्थापित" के रूप में चिह्नित करने का लाभ नहीं है, जो लाइन के नीचे अधिक उपयोगकर्ता हस्तक्षेप को मजबूर कर सकता है (टिप्पणियां देखें)।

यदि पाब्लो का समाधान आपके लिए काम करता है, तो कृपया इसे ऊपर उठाएं। यदि नहीं, तो कृपया गलत क्या टिप्पणी करें।

आक्रामक समाधान:

एक और आक्रामक समाधान चलाने के लिए है sudo apt-get dist-upgrade, जो उन नई निर्भरताओं की स्थापना को मजबूर करेगा।

परंतु dist-upgrade  काफी खतरनाक हो सकता हैअपग्रेड के विपरीत यह शायद हटाना जटिल निर्भरता स्थितियों को हल करने के लिए संकुल। आपके विपरीत, एपीटी हमेशा यह समझने के लिए पर्याप्त स्मार्ट नहीं होता है कि क्या इन जोड़ों और निकासी से विनाश हो सकता है।

तो यदि आप खुद को ऐसी जगह पर पाते हैं जहां "सतर्क समाधान" काम नहीं करता है, dist-upgrade  हो सकता है काम ... लेकिन आप शायद एपीटी के बारे में थोड़ा और सीखने से बेहतर हो और मामले-दर-मामले आधार पर संकुल को स्थापित और हटाकर निर्भरता के मुद्दों को "हाथ से" हल कर सकते हैं।

इसके बारे में सोचें जैसे कि कार को ठीक करना ... यदि आपके पास समय है और रिंच के साथ काम कर रहे हैं, तो आपको खुद को मरम्मत और मरम्मत करके मन की कुछ शांति मिलेगी। यदि आप भाग्यशाली महसूस कर रहे हैं, तो आप अपनी कार को अपने चचेरे भाई के साथ छोड़ सकते हैं dist-upgrade और उम्मीद है कि वह अपनी चीजें जानता है।


704
2017-07-31 22:15



चूंकि यह एक स्वीकृत उत्तर की ज़रूरत है, इसे वास्तव में उपयोग करने के बारे में चेतावनी देने के लिए अद्यतन करने की आवश्यकता है dist-upgrade एक स्थिर प्रणाली पर नीचे दिए गए कई अन्य उत्तरों ने बताया है। व्यक्तिगत रूप से मुझे लगता है कि एक सरल / सुरक्षित उत्तर है जिसे प्रचारित करने की आवश्यकता है: apt-get इंस्टॉल करें <pkgs की सूची> - Cas
कैस, क्या मुझे अभी जोड़ना चाहिए कि एक स्थिर प्रणाली पर एक अपग्रेड चलाने के लिए खतरनाक हो सकता है? वह खतरनाक क्यों है? (मैं ईमानदारी से यह सब ठीक से नहीं जानता।) - mac9416
वहां एक है सर्वर फॉल्ट जवाब जो थोड़ी अधिक विस्तार से डिस्ट-अपग्रेड बताता है। मुझे लगता है कि यह सिर्फ स्पष्टीकरण के लायक है (इस तरह खतरनाक नहीं है) कि यह पूरी प्रणाली को अपग्रेड कर सकता है जो ओपी उदाहरण में उपयोगकर्ता अपेक्षा करता / चाहती है या नहीं, वे सोच रहे हैं कि क्यों गिंप को वापस रखा जा रहा है। - Cas
कृपया ध्यान दें कि sudo apt-get dist-upgrade भी कर सकते हैं हटाना संकुल। नतीजतन, चलते समय, उनसे सहमत होने से पहले किए गए परिवर्तनों की सूची का निरीक्षण करना हमेशा सर्वोत्तम होता है sudo apt-get dist-upgrade। - Eliah Kagan
@EliahKagan मई मैं भी जोड़ सकता हूँ apt-get upgrade पैकेज हटा सकते हैं? यह हमेशा ऐसा करेगा जब अन्यथा एक संस्करण संघर्ष होगा। सोच llvm3.6 बनाम llvm3.6v5 ("v5" के साथ जिसका अर्थ है कि इसे संकलित किया गया था gcc 5)। ये दोनों सह-अस्तित्व में नहीं हो सकता, केवल दोनों को सिस्टम पर रखा जा सकता है। तो हाँ dist-upgrade कुछ संकुल भी हटा सकते हैं, लेकिन यह न केवल है dist-upgrade यह ऐसा करेगा; निश्चित परिस्थितियों के अंतर्गत, upgrade होगा, साथ ही साथ। - syntaxerror


जब भी आप आदेश से प्राप्त करते हैं apt-get upgrade संदेश

The following packages have been kept back:

फिर एक या सभी रखे हुए पैकेज को अपग्रेड करने के लिए, वितरण अपग्रेड किए बिना (यह वही है dist-upgrade करता है, अगर मुझे सही याद है) आदेश जारी करना है:

apt-get install <list of packages kept back>

यह रखे हुए मुद्दों को हल करेगा और अन्य उत्तरों द्वारा समझाया गया अतिरिक्त पैकेज, आदि स्थापित करने के लिए कहेंगे।


468
2017-09-08 09:14



जब पैकेज इस तरह से और मैन्युअल रूप से वापस रखा जाता है apt-get upgrade <list of packages>, अगर मैं फिर से करूँगा apt-get upgrade, यह संकुल को संकुल में सूचीबद्ध करेगा जैसा कि अब आवश्यक नहीं है और मैं इसका उपयोग कर सकता हूं apt autoremove उन्हें हटाने के लिए, जो मैं करता हूं, और फिर एक आखिरी apt-get upgrade और वे अब वापस रखे गए के रूप में सूचीबद्ध नहीं हैं ... बहुत अजीब। कोई विचार? - cram2208
कर देता है apt-get install gnarly निर्भरता स्थितियों को हल करने के लिए आवश्यक होने पर संकुल को भी हटाएं, या आपको एक अलग चलाने की आवश्यकता होगी apt-get remove अपग्रेड प्रक्रिया के उस हिस्से को पूरा करने के लिए आदेश? - mac9416
@ cram2208 मुझे विश्वास है कि यह अपेक्षित व्यवहार है। वे संकुल जो "स्वचालित रूप से संस्थापित थे और [...] अब आवश्यक नहीं थे" अपग्रेड किए गए संकुल के पिछले संस्करण हैं, जिन्हें अब और आवश्यकता नहीं है। apt autoremove फिर इन अप्रयुक्त निर्भरताओं को हटा देता है। - Alex
अगर अपग्रेड के लिए एक नया पैकेज स्थापित करने की आवश्यकता होगी, तो पैकेज "वापस रखा जाएगा।" पहले उपयोग करने पर विचार करें: sudo apt-get --with-new-pkgs upgrade जो कि मैन्युअल रूप से स्थापित किए जाने वाले संकुल को चिह्नित करने के पक्ष में दुष्प्रभाव नहीं है - l --marc l
@ mac9416 हाँ यह करता है। - jarno


apt-get dist-upgrade स्थिर वातावरण के लिए खतरनाक है,

  1. गलत स्रोत। सूची सेटिंग और आप टूटे उबंटू के साथ समाप्त हो जाते हैं।
  2. आप पूरे एप्लिकेशन को उस संस्करण में अपग्रेड कर सकते हैं जिसे आप नहीं चाहते हैं।

केस का प्रयोग करें: कर्नेल अपग्रेड वापस रखा गया है, आप सिर्फ कर्नेल को अपग्रेड करना चाहते हैं, पूरे वितरण को अपग्रेड नहीं करना चाहते हैं।

रखे हुए पैकेज को संभालने का बेहतर तरीका:

sudo aptitude

यदि आपने पैकेज वापस रखा है तो आपको सूची के शीर्ष पर अपग्रेड करने योग्य पैकेज देखना चाहिए।

  • उस सूची पर + हिट करें
  • जी दो बार मारा
  • अगर पूछा गया तो debconf सामान का उत्तर दें
  • जारी रखने के लिए वापसी दबाएं
  • प्रेस क्यू
  • हाँ दबाएं

आपका रखा बैक पैकेज स्थापित है।


170
2017-12-24 00:43



apt-get dist-upgrade यदि आपके पास खराब भंडार हैं तो केवल खतरनाक है /etc/apt/sources.list*। यह जानना अच्छा है कि dist-upgrade उन्नयन सब पैकेज, लेकिन डिफ़ॉल्ट भंडार के साथ, यह ठीक होना चाहिए। नहीं का उपयोग करते हुए dist-upgrade खतरनाक हो सकता है, क्योंकि आप सुरक्षा अद्यतनों को याद कर सकते हैं। - Flimm
apt-get dist-upgrade कर सकते हैं हटाना साथ ही संकुल जोड़ें, लेकिन यह वास्तव में खतरनाक नहीं है। कोई भी पैकेज स्थापना कमांड गंभीर क्षति का कारण बन सकता है अगर आपको अपनी समस्याएं हैं sources.list फ़ाइल! नियमित apt-get upgrade आदेश सक्षम किसी भी सॉफ्टवेयर स्रोत से किसी भी पैकेज को स्थापित करेगा; dist-upgrade इस तरह से अद्वितीय नहीं है। इसके अलावा, का उपयोग कर aptitude कम से कम amd64 पर, किसी भी ऑपरेशन को करने के लिए, चलने से कहीं अधिक खतरनाक है apt-get dist-upgrade, एक रिलीज में जहां बग 831768 तय नहीं है - Eliah Kagan
मेरे लिए, यह सिनैप्टिक खोलने और पैकेज के अपग्रेड को मजबूर करने के लिए आसान था (एक्स चलने वाली स्थानीय मशीन)। कुछ कारणों से यह उस जगह पर दिखाई नहीं दे रहा था जहां आपने सिनैप्टिक में वर्णित किया था। - djvs
भी sudo aptitude safe-upgrade - msanford


आप कोशिश क्यों नहीं करते यह यूनिक्स एसई जवाब:

sudo apt-get --with-new-pkgs upgrade

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

apt आदेश (दोस्ताना विकल्प सेवा मेरे apt-get) साझा करें इस apt-get विकल्प

का उपयोग करते हुए apt install <pkg> इसके बजाय पीकेजी को "मैन्युअल रूप से स्थापित" के रूप में चिह्नित किया जाएगा !! इसे फिर से "स्वचालित रूप से स्थापित" उपयोग के रूप में चिह्नित करने के लिए apt-mark auto <pkg> (उपमहाद्वीप भी देखें showmanual)। और जानकारी इस जवाब पर


60
2017-12-20 20:16



+1 क्योंकि इसे मैन्युअल रूप से स्थापित किए जाने वाले संकुल को चिह्नित करने के पक्ष में प्रभाव नहीं पड़ता है। - ctrl-alt-delor
ध्यान दें कि किसने कभी मेरी टिप्पणी को पढ़ा है: मैन्युअल रूप से इंस्टॉल करने के रूप में चिह्नित करने का दुष्प्रभाव नहीं है एक अच्छी बात है। मुझे यह जवाब पसंद है। - ctrl-alt-delor
तो यदि आप उपयोग करते हैं sudo apt-get --with-new-pkgs upgrade  के बग़ैर दौड़ना apt-mark auto <pkg>सब ठीक हो जाएगा? दूसरा आदेश केवल तभी जरूरी है जब आप कर मैन्युअल रूप से आयोजित बैक पैकेज स्थापित करने का चयन करें? - mac9416
हाँ। apt-mark auto <pkg> स्वचालित रूप से स्थापित होने के रूप में एक पैकेज को चिह्नित करने के लिए आवश्यक होना चाहिए (यहां आदमी पेज)। - Pablo Bianchi


सामान्यतः दो कारण हैं जो आप इस संदेश को देख सकते हैं।

यदि प्रोग्राम को अपग्रेड कर रहा है (के माध्यम से sudo apt-get upgrade) पैकेज को जोड़ा या हटा दिया जाएगा, तो कार्यक्रम वापस आयोजित किया जाएगा। आप उपयोग कर सकते हैं sudo apt-get dist-upgrade इस मामले में, जो अतिरिक्त कार्यक्रमों को जोड़ने या हटाने की पेशकश करेगा।

यह बहुत आम है और आमतौर पर कोई मुद्दा नहीं है। कभी-कभी (विशेष रूप से उबंटू अल्फा के दौरान) ए dist-upgrade कई अन्य कार्यक्रमों को हटाने की पेशकश करेगा, इस मामले में आप शायद इसे रद्द करना चाहते हैं।

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


30
2017-07-31 22:16



क्या यह निर्धारित करने का कोई तरीका है कि आयोजित पैकेज को निर्भरता की आवश्यकता है जिसे स्थापित नहीं किया जा सकता है या यदि यह हो रहा है क्योंकि अन्य पैकेज इस पर निर्भर करते हैं। मेरे पास कई पैकेज हैं और मेरा मानना ​​है कि ये दोनों मामले मेरे सिस्टम पर लागू हो सकते हैं। - Jake
धन्यवाद, दूसरा कारण मेरे लिए मुद्दा था। यहाँ तक की apt-get dist-upgrade इसे स्थापित करने से इंकार कर दिया। योग्यता वाले पैकेज का निरीक्षण करते हुए पता चला कि यह उस पैकेज पर निर्भर करता है जो उपलब्ध नहीं है। मुझे लगता है मुझे इंतजार करना होगा। - jlh


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

आखिरी मामले में, बस प्रतीक्षा करें, जब निर्भरता हल हो जाती है तो अगली बार स्थापित किया जाएगा।

संपादित करें:

एक और संभावना है, अगर उन्हें पकड़ लिया जाता है, या यदि वे पिन किए जाते हैं तो पैकेज वापस रखे जा सकते हैं।


18
2017-07-31 22:17



आप जिस चीज को एपेट-अप अपग्रेड या एपीटी-डिस्ट-अपग्रेड (alt। योग्यता समकक्ष) चलाते हैं, उसे जानने के बिना, उस संभावना को आप किस आधार पर आधार पर रखते हैं? - andol
यह समर्थन प्रश्नों और बगों में सबसे अधिक समस्याग्रस्त समस्या है - txwikinger
माना। आपको शायद इंतजार करना चाहिए और आपको apt_preferences की जांच करनी चाहिए। यह अक्सर विकास अभिलेखागार के कारण होता है जहां उपलब्ध संकुल निर्भरता बहुत तेज़ी से बदल रही हैं। उनके लिए बसने के लिए प्रतीक्षा करें और आपको इसकी आवश्यकता नहीं हो सकती है dist-upgrade बिलकुल। यदि आप अभी भी करना चाहते हैं dist-upgrade, फिर स्थापित होने के लिए नए पैकेज देखें और आगे जाने से पहले संकुल को हटा दिया जाए। - Umang
यह मेरा मामला है क्योंकि मुझे डिस्ट-अपग्रेड का उपयोग करके "वापस रखा गया" संदेश मिलता है - Postadelmaga
ऐसे मामलों में जहां यह समस्या एपीटी वरीयताओं (पिनिंग) के साथ मैसअप के कारण है, मैंने पाया कि रखे गए पैकेजों की पुनर्स्थापना ने मेरी मदद की: apt-get install --reinstall <packages>। - tanius


आप यह भी कोशिश कर सकते हैं:

sudo aptitude safe-upgrade

यह से सुरक्षित है full-upgrade (मूल रूप से डिस्ट-अपग्रेड नामित) क्योंकि "पैकेज तब तक नहीं हटाए जाएंगे जब तक कि उनका उपयोग न किया जाए"।

से man aptitude:

सुरक्षित रूप से अपग्रेड

अपने नवीनतम संस्करण में स्थापित संकुल को अपग्रेड करता है। स्थापित   पैकेज तब तक नहीं हटाए जाएंगे जब तक वे अप्रयुक्त /.../ पैकेज नहीं हैं   जो वर्तमान में स्थापित नहीं हैं हल करने के लिए स्थापित किया जा सकता है   निर्भरता जब तक --no-new-installs कमांड लाइन विकल्प नहीं है   आपूर्ति की।


18
2017-08-12 08:02





यह आमतौर पर इसलिए होता है क्योंकि पैकेज ने निर्भरता जोड़ दी है, और अपग्रेड बिना किसी अनुमति के आपके लिए जोड़ना चाहता है।

यदि आप भागते हैं:

sudo apt-get install gimp gimp-data libgegl-0.0-0 libgimp2.0

फिर नए संस्करणों को अपनी नई निर्भरता के साथ एक साथ स्थापित किया जाना चाहिए।


9
2017-12-27 19:20



एक दूरस्थ अपग्रेड के प्रतिबद्धता (जोखिम) के बिना विशिष्ट संकुल (और उनकी निर्भरता) को अपग्रेड करता है। - John Mee