Cara Memasang gcc 4.7.x / 4.8.x di CentOS


88

Apa cara termudah untuk menginstal gcc4.7.x / 4.8.x pada sistem dengan CentOS 6.2+? Paket RPM default berisi versi yang lebih lama dari gcc.

Jawaban:


67

Tru Huynh dari centos.org telah membangun toolset redhat developer 1.1 , untuk centos dan berisi gcc 4.7.2

Jadi Anda bisa menggunakan repo-nya dan menginstal hanya gcc, secara instan.

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++

Ini akan menginstalnya ke dalam kemungkinan besar /opt/centos/devtoolset-1.1/root/usr/bin/

Kemudian Anda bisa memberi tahu proses kompilasi Anda untuk menggunakan gcc 4.7 alih-alih 4.4 dengan variabel 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
menjalankan yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++mengembalikan empat-empat-empat, ..: image

1
jangan lupa yum clean allsebelum melakukan langkah-langkah lagi setelah kegagalan lain Anda masih akan mendapatkan 404

6
alih-alih mengatur variabel individual yang dapat Anda lakukan scl enable devtoolset-1.1 bash(ini akan memulai shell baru dengan semua variabel yang ditetapkan).
marcin

13
Untuk g ++ 4.8.2, ubah 1.1ke 2mana - mana, dan ubah --enablerepo=testing-1.1-devtools-6ke--enablerepo=testing-devtools-2-centos-6
dwurf

3
Apakah ini masih berfungsi? Saya mendapatkan people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/… : [Errno 14] PYCURL ERROR 22 - "URL yang diminta mengembalikan kesalahan: 404"
Paul Praet

42

Berikut adalah cara mendapatkan devtoolset-2 (termasuk gcc 4.8.1)

Ini diambil dari 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++

Masalah Dikenal:

  • paket yang tidak ditandatangani
  • CentOS-6 devtoolset-2 membutuhkan devtoolset-2-ide yang berisi seluruh tumpukan Eclipse, tetapi belum membangun
  • CentOS-6 semua file terkait pakar juga tidak dibangun

Perubahan utama dari devtools-1.1:

  • /opt/centos tidak lagi digunakan
  • /opt/rh sekarang digunakan sebagai hulu (sebagai versi SL)

1
Saya harus mengekspor ini agar berfungsi. Terima kasih! ekspor CC = / opt / rh / devtoolset-2 / root / usr / bin / gcc ekspor CXX = / opt / rh / devtoolset-2 / root / usr / bin / c ++ ekspor CPP = / opt / rh / devtoolset-2 / root / usr / bin / cpp
jemiloii

2
@JemiloII - apa yang Anda lakukan scl enable devtoolset-2setelah menginstal? Itu harus bekerja untuk mendapatkan kompiler yang benar di jalan.
Mark Lakata

yang sebenarnya bekerja lebih baik daripada ekspor!
jemiloii

@MarkLakata - Menjalankan scl enable devtoolset-2melempar kesalahan berikutNeed at least 3 arguments. Run scl --help to get help.
Swanidhi

3
@Swanidhi Perintah lengkapnya adalah di scl enable devtoolset-2 bashmana bidang terakhir bisa berbeda jika Anda tidak menggunakan bash.
Mark Lakata

30

Ada versi baru devtoolset 2.0. Orang-orang baik dari Cern yang bekerja di Scientific Linux membuat versi terbuka :

Jika Anda menggunakan CentOS (bukan Scientific Linux), maka Anda harus mengimpor kunci GPG mereka dari sini menggunakan:

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

Nikmati!


1
tautan di atas rusak sekarang, saya menemukan kunci yang sama di sini: [ftp.riken.jp] ( ftp.riken.jp/Linux/cern/slc58/x86_64/RPM-GPG-KEYs/… )
Remo Harsono

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
apa yang hash -rharus dilakukan
codecowboy

Pada -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / rusak sudo pada sistem Centos 6.7 saya. Saya pikir itu mungkin alias sudo.
codecowboy

@codecowboy $PATHsetiap kali Anda mengetik perintah dengan menyimpan hasil dalam memori, hash -rmemaksa memuat ulang $ PATH
Denis Denisov

@Denji - tampaknya situs hop5.in tidak ada lagi.
slm

mungkin perlu menambahkan --nogpgcheckopsi: sudo yum install --nogpgcheck devtoolset-3
FooBee

2

Dari apa yang saya lihat dari gnu gcc , versi stabil terbaru adalah 4.62. Versi 4.7 dapat diunduh dan dikompilasi, info lebih lanjut tentang instalasi gcc .


Saya bertanya tentang 4.7 karena seharusnya memiliki beberapa fitur C ++ 11 yang saya butuhkan (porting dari Dentang).
Tomas Andrle

Jadi selain dari kompilasi dari sumber tidak ada, katakanlah, situs web yang akan memiliki beberapa rpms yang bisa saya gunakan?
Tomas Andrle

Bukannya aku sadar, tapi aku tidak terlalu tahu tentang topik itu. Repositori RPM biasanya menyertakan RPM hanya dalam bentuk stabil.
bbaja42

2

tak satu pun dari jawaban ini bekerja untuk saya.
bahkan di shell devtoolset masih melihat gcc saya 4.4.7.
Trik saya adalah sebagai berikut:

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

1

ada masalah dengan devtool1.1 jadi saya melakukan beberapa perubahan - akhirnya, ini berhasil untuk saya: jalankan pertama

yum clean all

dari:

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

sekarang buka /etc/yum.repos.d/devtools-1.1.repo dan ubah dari:

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

(jika Anda menggunakan x86_64) ke:

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

atau ((jika Anda menggunakan x86))

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

dan akhirnya dijalankan:

yum install devtoolset-1.1

0

Salah satu cara untuk mencapai ini adalah dengan mengambil srcRPM dari repositori fedora dan mengkompilasi ulang mereka untuk sistem target Anda.
Fedora 17dan kemudian berikangcc 4.7

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.