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.

Tomas Andrle
sumber

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++
ck_
sumber
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)
Mark Lakata
sumber
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!

JiriHnidek
sumber
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\*
Denis Denisov
sumber
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 .

bbaja42
sumber
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
Dylan Westra
sumber
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
orang Yehuda
sumber
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

pengguna1055604
sumber