CentOS पर gcc 4.7.x / 4.8.x कैसे स्थापित करें


88

gccCentOS 6.2+ वाले सिस्टम पर 4.7.x / 4.8.x इंस्टॉल करने का सबसे आसान तरीका क्या होगा ? डिफ़ॉल्ट RPM पैकेज में पुराना संस्करण है gcc

जवाबों:


67

Centos.org के Tru Huynh ने redhat डेवलपर टूलसेट 1.1 बनाया है, सेंटो के लिए और इसमें gcc 4.7.2 है

तो आप बस उसके रेपो का उपयोग कर सकते हैं और तुरन्त gcc को स्थापित कर सकते हैं।

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo 
yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++

यह इसे सबसे अधिक संभावना में स्थापित करेगा /opt/centos/devtoolset-1.1/root/usr/bin/

फिर आप अपने संकलित प्रक्रिया को CC चर के साथ 4.4 के बजाय gcc 4.7 का उपयोग करने के लिए बता सकते हैं

export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc  
export CPP=/opt/centos/devtoolset-1.1/root/usr/bin/cpp
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/c++

4
रनिंग yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++रिटर्न एक चार-ओ-चार, ..: छवि

1
yum clean allअसफलता के बाद फिर से कदम उठाने से पहले भूल न करें आपको अभी भी 404 मिलेगा

6
व्यक्तिगत चर सेट करने के बजाय आप scl enable devtoolset-1.1 bashयह कर सकते हैं (यह सभी चर सेट के साथ नया शेल शुरू करता है)।
मार्सिन

13
G ++ 1.12--enablerepo=testing-1.1-devtools-6--enablerepo=testing-devtools-2-centos-6
4.8.2 के

3
क्या यह अभी भी काम करता है? मैं people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/... : [errno 14] PYCURL त्रुटि 22 - "अनुरोध किया गया URL लौटाई गई त्रुटि: 404"
पॉल Praet

42

यहां बताया गया है कि डिवॉल्टसेट -2 कैसे प्राप्त करें (gcc 4.8.1 सहित)

यह http://people.centos.org/tru/devtools-2/readme से लिया गया था

wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

ज्ञात पहलु:

  • अहस्ताक्षरित संकुल
  • CentOS-6 devtoolset-2 के लिए devtoolset-2-ide की आवश्यकता होती है जिसमें पूरे ग्रहण का ढेर होता है, लेकिन अभी तक निर्माण नहीं होता है
  • CentOS-6 सभी मावेन संबंधित फ़ाइल भी नहीं बनाई गई हैं

देवतल्स -१.१ से मुख्य परिवर्तन:

  • /opt/centos अब उपयोग नहीं किया जाता है
  • /opt/rh अब अपस्ट्रीम के रूप में उपयोग किया जाता है (SL संस्करण के रूप में)

1
मुझे काम करने के लिए इन्हें एक्सपोर्ट करना था। धन्यवाद! निर्यात CC = / opt / rh / devtoolset-2 / root / usr / bin / gcc निर्यात CXX = / opt / rh / devtoolset-2 / root / usr / bin / c ++ निर्यात CPP = / ऑप्ट / rh / devtoolset-2 / root / usr / bin / cpp
jemiloii

2
@JemiloII - आपने scl enable devtoolset-2स्थापित करने के बाद क्या किया ? कि रास्ते में सही संकलक प्राप्त करने के लिए काम करना चाहिए।
मार्क लकाटा

कि वास्तव में निर्यात से बेहतर काम करता है!
जेमिलोइ

@MarkLakata - रनिंग scl enable devtoolset-2निम्न त्रुटिNeed at least 3 arguments. Run scl --help to get help.
Swanidhi

3
@Swanidhi पूर्ण कमांड वह है scl enable devtoolset-2 bashजहां अंतिम क्षेत्र अलग हो सकता है यदि आप बैश का उपयोग नहीं कर रहे हैं।
मार्क लता

30

डिवॉल्टसेट 2.0 का नया संस्करण है। वैज्ञानिक लिनक्स पर काम कर रहे सर्न के अच्छे लोगों ने एक खुला संस्करण बनाया :

यदि आप CentOS (साइंटिफिक लिनक्स नहीं) का उपयोग करते हैं, तो आपको यहाँ से उनकी GPG कुंजी आयात करनी होगी :

rpm --import http://www.scientificlinux.org/documentation/gpg/RPM-GPG-KEY-cern

का आनंद लें!


1
ऊपर दिया गया लिंक अब टूटा हुआ है, मुझे यहाँ समान कुंजी मिली: [ftp.riken.jp] ( ftp.riken.jp/Linux/cern/slc58/x86_64/RPM-GPG-KEYs/… )
रेमो हरसोनो

21
# 1. Install a package with repository for your system:
# RHEL 6: `yum-config-manager --enable rhel-server-rhscl-6-rpmss`
# RHEL 7: `yum-config-manager --enable rhel-server-rhscl-7-rpms`
$ sudo yum install centos-release-scl # On CentOS 6/7+, install package centos-release-scl available in CentOS repository

# 2. Install the collection:
$ sudo yum install devtoolset-3

# 3. Start using software collections:
$ scl enable devtoolset-3 bash

$ sudo yum list devtoolset-3\*

1
क्या करता hash -rहै
कोडेकोवॉय

ln -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / लोकल / बिन / तोड़ा मेरी Centos 6.7 प्रणाली पर। मुझे लगता है कि यह उर्फ ​​सुडो हो सकता है।
कोडेकोवॉय

@codecowboy $PATHहर बार जब आप स्मृति में परिणाम कैशिंग द्वारा एक कमांड टाइप करते हैं, तो hash -r$ PATH को पुनः लोड करें
डेनिस डेनिसोव

@ डेंजी - जाहिर है कि हॉप 5.in साइट अब और नहीं है।
SLM

जोड़ने के --nogpgcheckविकल्प की आवश्यकता हो सकती है : sudo yum install --nogpgcheck devtoolset-3
FooBee

2

मैं gnu gcc से जो देख सकता हूं, उससे नवीनतम स्थिर संस्करण 4.62 है। संस्करण 4.7 डाउनलोड और संकलित किया जा सकता है, gcc स्थापना के बारे में अधिक जानकारी ।


मैंने 4.7 के बारे में पूछा क्योंकि यह माना जाता है कि कुछ C ++ 11 विशेषताएं हैं जिनकी मुझे आवश्यकता है (क्लैंग से पोर्टिंग)।
टॉमस आंद्रेल

तो स्रोत से संकलित करने के अलावा, कोई भी नहीं है, कहते हैं, वेबसाइट है कि कुछ rpms मैं उपयोग कर सकता है?
टॉमस आंद्रे

ऐसा नहीं है कि मैं इसके बारे में जानता हूं, लेकिन मैं इस विषय पर बहुत जानकार नहीं हूं। RPM रिपॉजिटरी में RPM को केवल स्थिर रूप में शामिल किया जाता है।
बीबीजा ४२

2

इनमें से किसी एक जवाब ने मेरे लिए काम नहीं किया।
यहां तक ​​कि भक्ति के खोल में अभी भी मेरी gcc 4.4.7 देखी जाती है।
मेरी चाल निम्नलिखित थी:

mv /usr/bin/gcc /usr/bin/gcc.bckup
ln -s /opt/centos/devtoolset-1.1/root/usr/bin/gcc /usr/bin/gcc

1

devtool1 के साथ एक समस्या है। 1 इसलिए मैंने कुछ बदलाव किए - आखिरकार, इसने मेरे लिए काम किया: पहला रन

yum clean all

से अधिक:

wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -O /etc/yum.repos.d/devtools-1.1.repo

अब /etc/yum.repos.d/devtools-1.1.repo खोलें और इससे बदलें:

http://people.centos.org/tru/devtools-2/$releasever/$basearch/RPMS

(यदि आप x86_64 का उपयोग कर रहे हैं):

http://people.centos.org/tru/devtools-1.1/6/x86_64/RPMS/ 

या (यदि आप x86 का उपयोग कर रहे हैं)

http://people.centos.org/tru/devtools-1.1/6/i386/RPMS/

और अंत में चलाएं:

yum install devtoolset-1.1

0

इसे प्राप्त करने का एक तरीका srcफेडोरा रिपॉजिटरी से आरपीएम प्राप्त करना और उन्हें आपके लक्ष्य प्रणाली के लिए पुनः स्थापित करना होगा।
Fedora 17और बाद में प्रदान करते हैंgcc 4.7

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