sudo apt-get install libstdc ++


16

जब मैं libstdc++का उपयोग कर स्थापित करने की कोशिश :

sudo apt-get install libstdc++

मैं ubuntu में नीचे त्रुटि हो रही है। क्या आपके पास इसके बारे में कोई विचार है?

The following packages have unmet dependencies:
 libstdc++-4.8-doc : Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
                     Conflicts: libstdc++6-4.6-doc but 4.6.4-6ubuntu2 is to be installed
                     Conflicts: libstdc++6-4.7-doc but 4.7.3-12ubuntu1 is to be installed
 libstdc++-4.9-doc : Conflicts: libstdc++-4.8-doc but 4.8.5-2ubuntu1~14.04.1 is to be installed
                     Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
                     Conflicts: libstdc++6-4.6-doc but 4.6.4-6ubuntu2 is to be installed
                     Conflicts: libstdc++6-4.7-doc but 4.7.3-12ubuntu1 is to be installed
 libstdc++-5-doc : Conflicts: libstdc++-4.8-doc but 4.8.5-2ubuntu1~14.04.1 is to be installed
                   Conflicts: libstdc++-4.9-doc but 4.9.3-8ubuntu2~14.04 is to be installed
                   Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
                   Conflicts: libstdc++6-4.6-doc but 4.6.4-6ubuntu2 is to be installed
                   Conflicts: libstdc++6-4.7-doc but 4.7.3-12ubuntu1 is to be installed
 libstdc++6-4.6-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
 libstdc++6-4.6-doc : Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
 libstdc++6-4.7-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
                      Conflicts: libstdc++6-4.6-dbg but 4.6.4-6ubuntu2 is to be installed
 libstdc++6-4.7-doc : Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
                      Conflicts: libstdc++6-4.6-doc but 4.6.4-6ubuntu2 is to be installed
 libstdc++6-4.8-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
                      Conflicts: libstdc++6-4.6-dbg but 4.6.4-6ubuntu2 is to be installed
                      Conflicts: libstdc++6-4.7-dbg but 4.7.3-12ubuntu1 is to be installed
 libstdc++6-4.8-dbg-armhf-cross : Conflicts: libstdc++6-4.7-dbg-armhf-cross but 4.7.3-11ubuntu1cross1.85 is to be installed
 libstdc++6-4.9-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
                      Conflicts: libstdc++6-4.6-dbg but 4.6.4-6ubuntu2 is to be installed
                      Conflicts: libstdc++6-4.7-dbg but 4.7.3-12ubuntu1 is to be installed
                      Conflicts: libstdc++6-4.8-dbg but 4.8.5-2ubuntu1~14.04.1 is to be installed
 libstdc++6-5-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
                    Conflicts: libstdc++6-4.6-dbg but 4.6.4-6ubuntu2 is to be installed
                    Conflicts: libstdc++6-4.7-dbg but 4.7.3-12ubuntu1 is to be installed
                    Conflicts: libstdc++6-4.8-dbg but 4.8.5-2ubuntu1~14.04.1 is to be installed
                    Conflicts: libstdc++6-4.9-dbg but 4.9.3-8ubuntu2~14.04 is to be installed
E: Unable to correct problems, you have held broken packages.

क्या आपने हाल ही में कोई ppas जोड़ा है?
राफेल

1
वास्तव में एक पैकेज नहीं कहा जाता है libstdc++(संभवतः आप इंस्टॉल करने की कोशिश कर रहे हैं libstdc++6; ++पात्रों के कारण, जब aptएक सटीक मिलान नहीं मिलता है तो यह पैकेज के नाम को एक नियमित अभिव्यक्ति के रूप में मानता है इसलिए इस मामले में यह किसी भी पैकेज को स्थापित करने की कोशिश कर रहा है जिसका नाम libstdएक या एक से अधिक के बाद के मैच c- जिनमें से कई संघर्ष, जैसा कि आप देख सकते हैं।
स्टीलराइवर

@steeldriver: यह स्पष्ट रूप से उत्तर और imho एक टिप्पणी के बजाय एक उत्तर होना चाहिए (हालांकि यह यह समझाने में सक्षम होने में मदद करेगा कि स्ट्रिंग को रेगेक्स के रूप में कैसे माना जाए)। इसके लिए मैनपेज aptकहता है कि यह पैकेज के नामों को रेगेक्स के रूप में मानेगा यदि वे शामिल हैं ., ?या *बिना उल्लेख किए हैं +, इसलिए व्यवहार बिल्कुल अपेक्षित नहीं है।
रिसी

जवाबों:


12

वहाँ वास्तव में एक पैकेज कहा जाता है libstdc++(संभवतः आप स्थापित करने की कोशिश कर रहे हैं libstdc++6?)

जब उपयुक्त को पैकेज के नाम से सटीक मेल नहीं मिलता है, तो यह दिए गए स्ट्रिंग को एक नियमित अभिव्यक्ति के रूप में मानता है। इस मामले में ++यह किसी भी पैकेज को स्थापित करने की कोशिश करने का कारण बनता है जिसका नाम libstdएक या अधिक से मेल खाता है c- जिनमें से कई संघर्ष, जैसा कि आप देख सकते हैं।

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

sudo apt-get update
sudo apt-get install libstdc++6

इसे स्वीकार किया जाना चाहिए। टर्न-ऑफ के बारे में: कोई एक उपनाम या फ़ंक्शन लिख सकता है जो पैकेज के नाम को एक के अंदर लपेटता है^PACKAGE$
फिल्प २

11

पहले ये कमांड चलाएं

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install aptitude

और फिर प्रयास करें

sudo apt-get install libstdc++6

या इस खोज परिणाम को आज़माएं और सूचीबद्ध http://packages.ubuntu.com/search?keywords=libstdc%2B%2B से एक वांछित पैकेज स्थापित करें


2
+1 अच्छा उत्तर, लेकिन क्या एस libstdc++में शामिल नहीं है build-essential?
केव इंकी

7
aptitudeयदि आप इसे स्थापित करने के लिए उपयोग नहीं करते हैं तो ओह और क्यों स्थापित कर रहे हैं libstdc++6?
केव इंकी

2
आपके उत्तर केव के लिए धन्यवाद। मैंने सफलता न मिलने की स्थिति में कुछ तरह की संभावनाएँ देने की कोशिश की। और अपनी त्रुटि को संभालने के लिए योग्यता।
मेक रिपन

sudo apt-get update apt-get: एरर शेयर्ड लाइब्रेरियाँ लोड करते समय: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: अमान्य ELF हेडर
mvladal

3
LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9

6
क्या आप बता सकते हैं कि उपयोगकर्ता को यह क्यों करना चाहिए और प्रत्येक कमांड क्या करता है? (यदि कोई व्यक्ति आपके उत्तर को पढ़ता है और गलत समस्या के लिए उसे कॉपी-पेस्ट करने का फैसला करता है?) ;-)
Fabby
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.