今天我试图更新我的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
答案 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回购的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 - 即使在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
?因为CentOS不依赖于clang
,所以它是相当新的版本,甚至可能支持C ++ 14。
希望这有帮助。
gcc repo的来源:
https://superuser.com/questions/381160/how-to-install-gcc-4-7-x-4-8-x-on-centos