在安装LINUX系统的时候很可能会没有安装gcc和g++编译器。而在实际使用中,有一些软件如fortran则需要gcc、g++编译器才能够正常使用其中的命令。正常情况下,在Centos系统中,我们可以使用yum命令非常方便地从网络自动下载和安装这两个编译器,但是在实际使用中我们的LINUX系统可能不具备联网条件,这就需要我们自己下载编译器需要的各个安装文件并手动安装,这里结合实际操作的经验对Centos离线手动安装gcc、g++编译器的过程加以分析。
1.联网条件下正常安装gcc、g++。
直接在命令窗口中以root身份输入:
[root@localhost awp-01]#yum install gcc
[root@localhost awp-01]# yum install g++
2.离线条件下手动安装gcc、g++:
基本的安装思路与这篇链接中的方法类似http://blog.csdn.net/vah101/article/details/17677451,但是具体实施中,有一点问题需要修正:
首先,我们到链接中下载需要的安装包文件http://vault.centos.org/6.3/os/x86_64/Packages/ 。具体需要下载的文件可以按照以上那篇博客的内容来做,这里我直接复制粘贴过来以供参考:
ppl-0.10.2-11.el6.x86_64.rpm 、
cloog-ppl-0.15.7-1.2.el6.x86_64.rpm 、
mpfr-2.4.1-6.el6.x86_64.rpm 、
cpp-4.4.6-4.el6.x86_64.rpm 、
kernel-headers-2.6.32-279.el6.x86_64.rpm 、
glibc-headers-2.12-1.80.el6.x86_64.rpm 、
glibc-devel-2.12-1.80.el6.x86_64.rpm 、
libstdc++-devel-4.4.6-4.el6.x86_64.rpm 、
gcc-4.4.6-4.el6.x86_64.rpm 、
gcc-c++-4.4.6-4.el6.x86_64.rpm(红色就是安装中出问题的地方)
之后,我们用U盘将这些文件拷到所需要安装的LINUX系统中,建议新建一个目录把所有的支持包都放到一个文件夹中,便于管理。
接下来,我们使用root身份进入到这些文件所在的目录gcc当中依次输入以下命令安装。
[root@localhost gcc]#rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh cpp-4.4.6-4.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh kernel-headers-2.6.32-279.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh glibc-headers-2.12-1.80.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh glibc-devel-2.12-1.80.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh libstdc++-devel-4.4.6-4.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh gcc-4.4.6-4.el6.x86_64.rpm
[root@localhost gcc]# rpm -ivh gcc-c++-4.4.6-4.el6.x86_64.rpm
如果可以按照以上步骤顺利安装,那么就安装完成了,但是从网上看,很多人像我一样,并不能很顺利按照以上步骤进行安装,会提示关联性问题和缺少文件,比如:
error: Failed dependencies:
glibc = 2.12-1.80.el6 is needed by glibc-headers-2.12-1.80.el6.x86_64
于是我按照提示找到一系列相关联的文件依次安装,仍然提示关联性错误。由于我已经将所有相关安装包都下载过了,仍然不能解决问题。反复尝试无果后,我们可以这样解决问题:
首先是强制安装以上问题文件,忽略关联性问题:
[root@localhost gcc]# rpm -ivh gcc-4.4.6-4.el6.x86_64.rpm --nodeps --force (忽略关联性、强制安装)
也可以这样一次性强制安装所有安装文件:
[root@localhost gcc]# rpm -Uvh *.rpm --nodeps --force (忽略关联性、强制安装)
之后,我们可以到/usr/bin目录下输入ls查看是否有gcc、g++目录,如果有,就安装成功了,如果没有,请继续往下看:
很不幸,我在安装的时候,在做完以上步骤之后,仍然没有安装成功。所以当时几乎崩溃,最后,由于我的师兄有留下一个其他版本的gcc-c++ -4.4.7-4的g++安装文件,于是尝试强制安装,忽略相关性,安装成功后,成功匹配!
结论!结论!结论!
1.首先,原博客给出的安装方法基本是正确的,起码步骤上是没有什么大问题的!
2.所谓的相关性错误,并没有那么重要,我们将满足安装要求的文件强制安装后,仍然可以使用!不会出现错误!
3.跨版本组合的都能成功,我也是醉了!!!
4.大总结就是,按照以上步骤进行安装,当出现报错的时候进行强制安装,忽略相关性,仍不能解决的,换一个版本的相同文件继续强制安装,就能成功!!!
5.据搜集资料,下载相关文件的时候最好在另一台LINUX系统的计算机上下载,否则windows下载可能出现转换问题!