วิธีการติดตั้ง gcc 4.7.x / 4.8.x บน CentOS


88

อะไรจะเป็นวิธีที่ง่ายที่สุดในการติดตั้งgcc4.7.x / 4.8.x บนระบบที่มี CentOS 6.2+? gccแพคเกจเริ่มต้นรอบต่อนาทีมีรุ่นเก่า

คำตอบ:


67

Tru Huynh จาก centos.org ได้สร้างชุดเครื่องมือนักพัฒนา redhat 1.1สำหรับ centos และมี gcc 4.7.2

ดังนั้นคุณสามารถใช้ repo ของเขาและติดตั้งเพียง 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/

จากนั้นคุณสามารถบอกให้กระบวนการคอมไพล์ของคุณใช้ gcc 4.7 แทน 4.4 ด้วยตัวแปร CC

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
Running yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++คืนค่าสี่ -o-four, .. : image

1
อย่าลืมyum clean allก่อนที่จะทำตามขั้นตอนอีกครั้งหลังจากความล้มเหลวอื่นคุณจะยังได้รับ 404

6
แทนที่จะตั้งค่าตัวแปรแต่ละตัวที่คุณสามารถทำได้scl enable devtoolset-1.1 bash(มันจะเริ่มเชลล์ใหม่ด้วยชุดตัวแปรทั้งหมด)
marcin

13
สำหรับ g ++ 4.8.2 ให้เปลี่ยน1.1เป็น2ทุกที่และเปลี่ยน--enablerepo=testing-1.1-devtools-6เป็น--enablerepo=testing-devtools-2-centos-6
dwurf

3
ยังใช้งานได้หรือไม่ ฉันได้รับpeople.centos.org/tru/devtools-2/6Workstation/i386/RPMS/ … : [Errno 14] PYCURL ข้อผิดพลาด 22 - "URL ที่ร้องขอส่งคืนข้อผิดพลาด: 404"
Paul Praet

42

นี่คือวิธีการรับ devtoolset-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 ซึ่งมีทั้ง Eclipse stack แต่ยังไม่ได้สร้าง
  • CentOS-6 ไฟล์ที่เกี่ยวข้องกับ maven ทั้งหมดไม่ได้ถูกสร้างขึ้น

การเปลี่ยนแปลงหลักจาก devtools-1.1:

  • /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 ส่งออก = / opt / rh / devtoolset-2 / root / usr / bin / cpp
jemiloii

2
@JemiloII - คุณscl enable devtoolset-2ติดตั้งแล้วหรือยัง? ที่ควรจะได้รับคอมไพเลอร์ที่ถูกต้องบนเส้นทาง
Mark Lakata

ที่ใช้งานได้ดีกว่าการส่งออก!
jemiloii

@MarkLakata - การเล่นscl enable devtoolset-2เกิดข้อผิดพลาดต่อไปนี้Need at least 3 arguments. Run scl --help to get help.
Swanidhi

3
@Swanidhi คำสั่งแบบเต็มคือส่วนscl enable devtoolset-2 bashที่ฟิลด์สุดท้ายอาจแตกต่างกันหากคุณไม่ได้ใช้ bash
Mark Lakata

30

มีเวอร์ชั่นใหม่ของ devtoolset 2.0 ผู้คนในนีซจาก Cern กำลังทำงานกับ Scientific Linux ได้สร้างเวอร์ชันเปิด :

หากคุณใช้ CentOS (ไม่ใช่ Scientific Linux) คุณจะต้องนำเข้าคีย์ 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ทำอะไร?
codecowboy

ln -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / ยากจน sudo บนระบบ Centos 6.7 ของฉัน ฉันคิดว่ามันอาจเป็นชื่อแทน sudo
codecowboy

@codecowboy $PATHทุกครั้งที่คุณพิมพ์คำสั่งโดยการแคชผลลัพธ์ในหน่วยความจำhash -rบังคับให้โหลดใหม่อีกครั้ง $ PATH
Denis Denisov

@Denji - เห็นได้ชัดว่าเว็บไซต์ hop5.in ไม่มีอีกแล้ว
slm

อาจต้องเพิ่ม--nogpgcheckตัวเลือก: sudo yum install --nogpgcheck devtoolset-3
FooBee

2

จากสิ่งที่ฉันเห็นได้จากgnu gccรุ่นเสถียรล่าสุดคือ 4.62 รุ่น 4.7 สามารถดาวน์โหลดและเรียบเรียงข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้ง GCC


ฉันถามเกี่ยวกับ 4.7 เพราะมันควรจะมีคุณสมบัติ C ++ 11 ที่ฉันต้องการ (พอร์ตจาก Clang)
Tomas Andrle

ดังนั้นนอกเหนือจากการรวบรวมจากแหล่งที่มาไม่มีพูดเว็บไซต์ที่จะมี rpms บางอย่างที่ฉันสามารถใช้?
Tomas Andrle

ไม่ใช่ว่าฉันรู้ แต่ฉันไม่ค่อยมีความรู้ในหัวข้อ ที่เก็บ RPM โดยทั่วไปจะรวม RPM ในรูปแบบที่เสถียรเท่านั้น
bbaja42

2

ไม่มีคำตอบข้อใดข้อหนึ่งสำหรับฉัน
แม้ใน shell ของ devtoolset ยังคงเห็น 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

วิธีหนึ่งในการบรรลุเป้าหมายนี้คือการดึงข้อมูลsrcRPM จากคลังเก็บของ fedora และรวบรวมใหม่สำหรับระบบเป้าหมายของคุณ
Fedora 17และในภายหลังให้gcc 4.7

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.