我有一个gcc版本4.4.7的RHEL 6服务器。我想更新gcc版本(我认为当前版本是4.8)。百胜更新不起作用。同样,在CentOS上针对类似问题的SO答案也不起作用。我按照接受的答案中的方法进行操作,输出为“在获取用于testing-1.1-devtools-6的存储库数据时出错,未找到存储库”。另外,我不确定是否应遵循CentO的方法。
是否有人在RHEL 6 x86_64服务器中更新了gcc?
我有一个gcc版本4.4.7的RHEL 6服务器。我想更新gcc版本(我认为当前版本是4.8)。百胜更新不起作用。同样,在CentOS上针对类似问题的SO答案也不起作用。我按照接受的答案中的方法进行操作,输出为“在获取用于testing-1.1-devtools-6的存储库数据时出错,未找到存储库”。另外,我不确定是否应遵循CentO的方法。
是否有人在RHEL 6 x86_64服务器中更新了gcc?
Answers:
到目前为止,最简单的方法是利用通过YUM存储库提供的二进制版本。 一种这样的选择是使用hop5.in存储库。特别是此页面:gcc-各种编译器(C,C ++,Objective-C,Java等)。他们提供的4.8.2应该可以与CentOS 6.3或6.4一起使用。您可能需要事先进行更新:
$ sudo yum update
另一个选择是利用Developer Toolset,特别是Scientific Linux提供的捆绑版本。
按照安装说明,您基本上将执行以下两个步骤:
添加存储库$ sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo \
http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
$ wget -O /etc/yum.repos.d/slc5-devtoolset.repo \
http://linuxsoft.cern.ch/cern/devtoolset/slc5-devtoolset.repo
安装devtoolset
$ sudo yum install devtoolset-2
YUM存储库中的hop5.in似乎已被删除,因此唯一的办法就是利用上面突出显示的devtoolset方法。
该GitHub Gist中突出显示了通过devtoolset安装的其他示例:在CentOS 6上安装gcc 4.8和Linuxbrew。
http://ftp.scientificlinux.org/linux/scientific/5x/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern
。我喜欢该网站没有https。去scilinux的方式。你下载它(tmp目录或whever)后,与导入rpm --import RPM-GPG-KEY-cern
和然后做yum install.
devtoolset-2-gcc
(至少对我而言)安装了12个软件包和35 MB下载,而280个软件包和575 MB下载yum install devtoolset-2
。
Red Hat Software Collections随GCC 4.9一起提供,您可能会考虑启用该通道。
我已经为rhel6构建了较新的gcc版本,现在已有多个版本(从4.7.x到5.3.1版本)。
由于Redhat的Jakub Jelinek fedora gcc构建在koji上,因此该过程相当容易
只需获取所需版本的最新src rpm(例如5.3.1)。
基本上,您首先要通过发布rpm -qpR src.rpm
寻找任何版本要求来确定构建要求:
rpm -qpR gcc-5.3.1-4.fc23.src.rpm | grep -E '= [[:digit:]]'
binutils >= 2.24
doxygen >= 1.7.1
elfutils-devel >= 0.147
elfutils-libelf-devel >= 0.147
gcc-gnat >= 3.1
glibc-devel >= 2.4.90-13
gmp-devel >= 4.1.2-8
isl = 0.14
isl-devel = 0.14
libgnat >= 3.1
libmpc-devel >= 0.8.1
mpfr-devel >= 2.2.1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
systemtap-sdt-devel >= 1.3
现在是乏味的部分-任何版本高于发行版yum提供的软件包都需要从koji下载,然后递归地重复该过程,直到满足所有依赖关系要求为止。
我作弊,顺便说一句。
我通常使用gnu工具将rpm重新包装为包含正确的构建树,以使用正确放置和命名的需求,因此将gmp / mpc / mpfr / isl(不再需要cloog)下载并安装到正确的路径中, (膨胀的)tar被重建为新的src rpm(对spec文件进行了少量更改),而与它们的打包(rpm)版本无关。由于我不知道有人在使用ADA,因此我只是从specfile中删除了与gnat有关的部分,从而进一步简化了构建过程,使我只剩下binutils了。
Gcc实际上可以使用较旧的binutils进行构建,因此,如果您急忙,请进一步编辑specfile以要求系统中已经存在binutils版本。这将导致gcc稍有下降,但是大多数情况下它会表现良好。
这在大多数情况下效果很好。
更新1
打开src rpm的最简单方法可能是yum install rpm并访问〜/ rpmbuild下的所有内容,但是我更喜欢
mkdir gcc-5.3.1-4.fc23
cd gcc-5.3.1-4.fc23
rpm2cpio ../gcc-5.3.1-4.fc23.src.rpm | cpio -id
tar xf gcc-5.3.1-20160212.tar.bz2
cd gcc-5.3.1-20160212
contrib/download_prerequisites
cd ..
tar caf gcc-5.3.1-20160212.tar.bz2 gcc-5.3.1-20160212
rm -rf gcc-5.3.1-20160212
# remove gnat
sed -i '/%global build_ada 1/ s/1/0/' gcc.spec
sed -i '/%if !%{build_ada}/,/%endif/ s/^/#/' gcc.spec
# remove gmp/mpfr/mpc dependencies
sed -i '/BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1, libmpc-devel >= 0.8.1/ s/.*//' gcc.spec
# remove isl dependency
sed -i '/BuildRequires: isl = %{isl_version}/,/Requires: isl-devel = %{isl_version}/ s/^/#/' gcc.spec
# Either build binutils as I do, or lower requirements
sed -i '/Requires: binutils/ s/2.24/2.20/' gcc.spec
# Make sure you don't break on gcc-java
sed -i '/gcc-java/ s/^/#/' gcc.spec
您还可以选择设置前缀,以便此rpm并排安装而不会破坏发行版rpm(但需要更改名称,并对内部软件包名称进行一些修改)。我通常会添加一个环境模块,以便我可以根据需要作为rpm的一部分加载和卸载此gcc(类似于集合的工作方式)(因此我添加了新的依赖项)。
最后,创建rpmbuild树并将文件放置在应构建的位置:
yum install rpmdevtools rpm-build
rpmdev-setuptree
cp * ~/rpmbuild/SOURCES/
mv ~/rpmbuild/{SOURCES,SPECS}/gcc.spec
rpmbuild -ba ~/rpmbuild/SPECS/gcc.spec
更新2
通常,不应该使用“服务器”操作系统进行开发-这就是为什么您已经拥有最新的gcc附带的fedora的原因。我有一些特殊要求,但是您应该真正考虑使用适合该任务的工具-rhel / centos运行生产应用程序,fedora开发这些应用程序等。
大家好,这就是我所做的(从头开始编译)。我确信它确实可行,但对其他答案并没有冒犯,但是GCC对于安全性尤其重要,因此我更喜欢从原始和官方来源进行编译:
yum -y install gmp-devel mpfr-devel libmpc-devel glibc-devel glibc-devel.i686 zip unzip jar
wget http://mirrors.kernel.org/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz
tar -zxvf gcc-5.5.0.tar.gz
cd gcc-5.5.0
./configure
make
make install
yum remove gcc
rm -rf /usr/bin/gcc
rm -rf /usr/bin/c++
rm -rf /usr/bin/cc
ln -s /usr/local/bin/x86_64-unknown-linux-gnu-gcc-5.5.0 /usr/bin/gcc
ln -s /usr/local/bin/x86_64-unknown-linux-gnu-c++ /usr/bin/c++
ln -s /usr/local/bin/x86_64-unknown-linux-gnu-gcc /usr/bin/cc
资料来源:http : //realtechtalk.com/GCC_5_on_Centos_6_How_To_Install-1965-articles