2013-05-01 11 views
26

पर जीसीसी 4.8 स्थापित कर रहा है मैं नए सी ++ 11 सुविधाओं में से कुछ साथ प्रयोग करना शुरू करना चाहते हैं और ऐसा लगता है कि जीसीसी 4.8 के साथ है इसके लिए सबसे अच्छा समर्थन है, और 4.4.5 के साथ जहाजों निचोड़।डेबियन

हालांकि, मैं अपने मौजूदा सेटअप के लिए किसी भी "नुकसान" पैदा करने के लिए नहीं करना चाहती। सबसे अच्छा तरीका है साइड-बाई-साइड चल जीसीसी के दोनों संस्करण प्राप्त करने के लिए क्या है? मैं ज्यादातर बड़ी निर्भरताओं पर चिंतित हूं और उन्हें अपने वर्तमान सिस्टम में ले जाने से यह अस्थिर हो सकता है।

किसी को भी ऐसा करने में कामयाब रहा है, और क्या कदम शामिल कर रहे हैं?

उसमें असफल होने पर मैं शायद सिर्फ एक वीएम बना सकते हैं और है कि के तहत एक "अस्थिर" डेबियन चलाने लेकिन यह एक से कम आदर्श समाधान है जाएगा।

उत्तर

33

आप स्रोत से जीसीसी स्थापित हैं, बस सुनिश्चित करें कि आप /usr लिए इसे स्थापित नहीं करते हैं और यह गड़बड़ कुछ भी नहीं होगा। यदि आप इसे अपने उपयोगकर्ता के रूप में स्थापित करते हैं, root नहीं, तो सिस्टम को गड़बड़ करने का शून्य मौका है।

लगभग मूर्ख प्रूफ न्यूनतम विन्यास के लिए http://gcc.gnu.org/wiki/InstallingGCC देखें।

मैं विभिन्न संस्करणों विभिन्न एक्स के लिए ~/gcc/4.X में मेरे उपयोगकर्ता के रूप में बनाया गया है और स्थापित किया है

उस सेट अप का उपयोग करने के बारे में जागरूक होने वाली एकमात्र चीज यह है कि नए संस्करण के लिए साझा लाइब्रेरी गतिशील लिंकर के डिफ़ॉल्ट खोज पथ में नहीं हैं, इसलिए आपको LD_LIBRARY_PATH या निष्पादन योग्य सुनिश्चित करने के लिए कुछ अन्य समाधान का उपयोग करने की आवश्यकता है 4.8 से libs, libstdc++ FAQ और पेज उस में manual

मैं एक आवरण स्क्रिप्ट कॉल g++11 जो केवल -std=gnu++11 साथ जीसीसी के नए संस्करण कॉल और संयोजक के लिए एक झंडा गुजरता पथ सेट करने के लिए यह कह उपयोग करने के लिए लिंक को देखने के निष्पादन योग्य में 4.8 libs के लिए:

$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "[email protected]" 
+3

मुझे विशेष रूप से उपयोगी रैपर स्क्रिप्ट –

2

त्वरित वाले:

  1. बस परीक्षण के लिए नवीनीकरण, यह रॉक-ठोस है और आप कई समवर्ती जीसीसी संस्करण प्रदान करता है। उबंटू के लिए, 12.10 पर मेरे पास समानांतर में जीसीसी/जी ++ 4.4, 4.5, 4.6 और 4.7 है।

  2. डेबियन backports संग्रह की कोशिश करो, यह जीसीसी 4.8 के एक बंदरगाह हो सकता है।

  3. उपयोग वर्चुअलाइजेशन: मैं पसंद करते हैं libvirt/केवीएम जो लिनक्स पर अविश्वसनीय रूप से हल्के है, क्योंकि यह कर्नेल आधारित है। मेरे एमडी 64 सर्वर के पास इसी कारण से दो अन्य 32 बिट इंस्टॉलेशन हैं।

  4. नहीं सच में एक तो सवाल ...

+6

एफएक्यू से: "आमतौर पर प्रोग्रामर द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर टूल"। यदि जीसीसी उस वर्णन से मेल नहीं खाता है, तो मैं अपनी टोपी खाऊंगा :-) – paxdiablo

+3

एसओ प्रोग्रामिंग के लिए है, मैंने देखा है कि मॉडरेटर माफिया सुपरसियर पर समान प्रश्नों को ले जाता है। व्यक्तिगत रूप से, मैं यहां सवाल उठाता हूं और सोचता हूं कि एसई साइटें बहुत अच्छी तरह से मिल रही हैं। बस यह कहकर कि मैं बंद या स्थानांतरित होने की उम्मीद करता हूं। –

6

डेबियन नाम जीसीसी-4.8 के तहत पैकेज (या ग के लिए ++ संकलक, जी ++ - 4.8)। उन पैकेजों को स्थापित करना आपके ओएस को गड़बड़ नहीं करेगा, जब तक आप इसे g ++ में पुनर्नामित नहीं करते हैं। पैकेज हालांकि प्रायोगिक के रूप में सूचीबद्ध है। पैकेज पर
सूचना here है।

अद्यतन: जी ++ - 4.8 अब testing में है, लेकिन एक अद्यतन पैकेज unstable

+0

हालांकि वह स्थिर चल रहा है। –

+0

यदि वह चाहें तो वह गैर-स्थिर पैकेज खोजने के लिए अपने सिस्टम को कॉन्फ़िगर कर सकता है। [सर्वरफॉल्ट पर यह प्रश्न] देखें (http://serverfault.com/questions/22414/how-can-i-run-debian-stable-but-install-some-packages-from-testing) (स्वीकृत उत्तर पढ़ें)। – JKor

+1

निश्चित रूप से - मुझे पता है कि 1 99 5 से मैं डेबियन डेवलपर/रखरखाव रहा हूं। यह बेहोश दिल के लिए नहीं है क्योंकि स्थिर और परीक्षण/अस्थिर के बीच का अंतर व्यापक हो सकता है। आधार के रूप में परीक्षण का उपयोग करना बहुत आसान है, जो मैं वर्षों से कर रहा हूं। लेकिन वाईएमएमवी, और उसका भी। –

1

आप की कोशिश की है chroot एक नए डेबियन स्वाद स्थापित करने के लिए है?

  • आप के आसपास खेल सकते हैं डर के बिना काम कर प्रणाली आप को तोड़ने के लिए।

  • एक डेबियन स्वाद है कि आप जीसीसी संस्करण का समर्थन वांछित स्थापित करें।

  • आप काम कर प्रणाली को प्रभावित किए बिना स्वयं एक जीसीसी संस्करण स्थापित करें। http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot

16

मुझे एक ही समस्या थी, और परीक्षण में पूरी तरह से अपग्रेड नहीं करना चाहता था।

जेसी (परीक्षण) में अब जी ++ - 4.8 है जो सी ++ 11 के अनुरूप है।

मैं निम्नलिखित तरीके से उपयुक्त-pinning प्रयोग किया है:

deb http://ftp.uk.debian.org/debian/ jessie main non-free contrib 

/etc/उपयुक्त/वरीयताओं के रूप में संपादित किया गया था:

जेसी के लिए एक सूत्र /etc/apt/sources.list में जोड़ा गया था इस तरह:

Package: * 
Pin: release n=wheezy 
Pin-Priority: 900 

Package: gcc* 
Pin: release n=jessie 
Pin-Priority: 910 
फिर

,

$ sudo aptitude update 
$ sudo aptitude install gcc/jessie 

किस बिंदु पर मैंने निर्भरता को पूरी तरह हल करने के लिए दूसरे प्रस्तुत विकल्प का चयन किया।

+1

पाया गया यह 'n = jessie' होना चाहिए, distro codeename' n = '' man apt_preferences' के अनुसार है। इसके अलावा, यह मेरे लिए 'ए' के साथ काम नहीं करता है। –

+1

ये निर्देश मौजूदा जीसीसी 4.7 स्थापना को हटाकर और एक नया जीसीसी स्थापित नहीं करके डेबियन 7.8.0 (wheezy) तोड़ते हैं। किसी कामकाजी डेवलपर स्थिति पर वापस जाने के लिए, मूल gcc 4.7 को पुनर्स्थापित करने का प्रयास करने के लिए 'apt-get' का उपयोग करने के लिए यह संभव नहीं है (या यह काम नहीं करता है)। –