CentOS离线安装gcc(循环依赖、冲突解决)
1、概述
大家好,我是欧阳方超,封面图片为8号加班打车晚归。
内网环境中的机器,发现上面gcc都没有,怎么办?安呗!
关键词:gcc离线安装、循环依赖、冲突
2、安装过程
2.1 检查gcc安装情况
查看下gcc是否已安装(我这里当然是没有安装),如果你不确定的话可以使用下面的命令查看:
[root@localhost local]# gcc -v
Bash: GCC: command not found
也可以查看一下g++的安装情况:
[root@localhost local]# g++ -v
Bash: G + +: command not found
2.2 根据系统版本安装下载相应rpm
本次使用的CentOS7系统运行在aarch64上,在[https://pkgs.org](https://pkgs.org)中搜索gcc找到相应的gcc版本:
如上图所示,本次选择gcc-4.8.5-44.el7.aarch64.rpm进行安装,至于列表中出现的其他版本暂未尝试,从上图中的红框点进去,可以看到详情:
下载Binary Package:
2.3 上传到服务器并安装
计划将其安装到/usr/local目录,在该目录下进一步创建/basicenv/gcc目录:
[root@localhost local]# cd /usr/local
[root@localhost local]# mkdir -p basicenv/gcc
将下载的gcc-4.8.5-44.el7.aarch64.rpm上传到上面创建的目录中,然后使用rpm进行安装:
[root@localhost gcc]# rpm -ivh gcc-4.8.5-44.el7.aarch64.rpm
做好心理准备,安装过程中十有八九会缺少相关依赖(下面贴了一点缺少的依赖,只是部分):
Failed dependencies:
cpp = 4.8.5-44.el7 is needed by gcc-4.8.5-44.el7.aarch64
glibc-devel >= 2.2.90-12 is needed by gcc-4.8.5-44.el7.aarch64
libgcc >= 4.8.5-44.el7 is needed by gcc-4.8.5-44.el7.aarch64
不过不用担心,我们只需根据系统的提示将依赖的包再次下载、上传并安装即可。
2.3.1 解决循环依赖
安装过程中还有可能遇到循环依赖的问题,这时可以把需要安装的rpm文件都放到rpm -ivh之后:
rpm -ivh xxx.rpm xxx.rpm xxx.rpm
2.3.2 解决包冲突
当解决循环依赖的问题时还可能遇到如下的包冲突的问题:
可能系统里已经存有某些rpm,所以会存在冲突的情况,这时有两种办法解决这类问题,一种是将其卸载,不过当有很多软件要卸载时还挺麻烦,可以考虑第二种方法,在安装的时候增加--replacefiles参数,如:
rpm -ivh xxx.rpm --replacefiles
当循环依赖、冲突都解决后,就可以顺利安装gcc了,之后再次输入gcc -v可以看到版本了:
[ ]
using built-in specs.
COLLECT_GCC=gcc
//省略部分内容
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
3、总结
本文介绍了内网机器上安装gcc、解决循环依赖、冲突的问题,还有很多小工具如net-tools、rsync都可以通过这种方式安装,内网环境也可以耍起来了。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。