在CentOS 6.2上更新GCC

时间:2015-11-17 17:03:24

标签: linux gcc centos

今天我试图更新我的gcc,在互联网上搜索后我发现了这个article但是我被卡住了。我做了它说的但是得到了一个错误,就像我的其他尝试一样。在我的其他尝试中,我认为必须打破链接,但在这种情况下,这是一篇新文章,我认为我的计算机出了问题。在那篇文章中,我只是使用了更新部分,因为我已经拥有GCC 4.4.6。我的问题是第一步:D。我输入了sudo yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686但终端在这里给了我Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again我不知道这是什么意思。请不要重复这个问题,因为我搜索了很多但是没有关于我得到的错误。提前谢谢。

以下是评论中要求的/etc/yum.repos.d/epel.repo文件。

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-    6&arch=$basearch
failovermethod=priority
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

2 个答案:

答案 0 :(得分:4)

Developer Toolset 2.0 http://linux.web.cern.ch/linux/devtoolset/

wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo

你得到 gcc-4.8.1 # yum install devtoolset-2-gcc-c++

64bits http://linuxsoft.cern.ch/cern/devtoolset/slc6X/x86_64/RPMS/

32bits http://linuxsoft.cern.ch/cern/devtoolset/slc6X/i386/RPMS/

答案 1 :(得分:3)

不是100%肯定你的要求,但是:

EPEL

有安装EPEL回购的RPM。这是链接:

rpm -i http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

在安装之前,您需要删除已应用的EPEL配置文件。

安装完成后,您需要

yum update

它将更新整个系统,包括gcc。

请注意,此更新将将CentOS更新为版本7或其他内容。它只会使所有软件包都使用上一版本 - 例如,您将拥有Apache webserver的最后支持的版本。

GCC

问题的第二部分是关于gcc - 即使在EPEL中,gcc也有点旧。我自己的C ++ 11代码,从不编译。

您需要安装名为redhat developer toolset 1.1的内容:
https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Developer_Toolset/1/html/1.1_Release_Notes/ch-Features.html

要安装它,您需要按如下方式创建文件:

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/

此代表不会更新/opt/以外的任何内容。

要使用编译器,您需要导出以下变量:

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

可悲的是,即使这样,你也无法获得gcc 4.8,但是gcc版本还不错。我们能够只修补一个文件来编译最新的node.js,但是我们无法编译最新的TokuDB。

CLANG

你有没有试过clang?因为CentOS不依赖于clang,所以它是相当新的版本,甚至可能支持C ++ 14。

希望这有帮助。

gcc repo的来源:
https://superuser.com/questions/381160/how-to-install-gcc-4-7-x-4-8-x-on-centos