如何在CentOS上安装gcc 4.7.x / 4.8.x


Answers:


67

centos.org的Tru Huynh已经为ce​​ntos 构建了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变量的gcc 4.7而不是4.4

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(它会在设置了所有变量的情况下启动新的Shell)。
marcin

13
对于g ++ 4.8.2,更改1.12所有位置,然后更改--enablerepo=testing-1.1-devtools-6--enablerepo=testing-devtools-2-centos-6
dwurf

3
这仍然有效吗?我得到people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/...:[错误14] PYCURL ERROR 22 - “请求的URL返回错误:404”
保罗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堆栈,但尚未构建
  • 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,2016年

2
@JemiloII- scl enable devtoolset-2安装后您做了吗?这应该可以在路径上获得正确的编译器。
Mark Lakata '16

实际上比出口要好!
jemiloii's

@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 '16

30

有新版本的devtoolset 2.0。来自Cern从事科学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/…
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
怎么hash -r办?
codecowboy16年

在我的Centos 6.7系统上,-s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin /破坏了sudo。我认为它可能是sudo的别名。
codecowboy16年

@codecowboy $PATH每次您通过将结果缓存在内存中键入命令时,hash -r强制重新加载$ ​​PATH
Denis Denisov 2016年

@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 2012年

因此,除了从源代码进行编译之外,没有网站可以使用一些rpms吗?
Tomas Andrle 2012年

并不是我知道的,但是我对这个话题不是很了解。RPM存储库通常仅以稳定形式包含RPM。
bbaja42 2012年

2

这些答案都不对我有用。
即使在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

实现此目标的一种方法是src从fedora存储库中获取RPM,然后将其重新编译为目标系统。
Fedora 17然后提供gcc 4.7

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.