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中搜索gcc找到相应的gcc版本:
centos 离线安装 nc centos 离线安装 armadillo_上传
如上图所示,本次选择gcc-4.8.5-44.el7.aarch64.rpm进行安装,至于列表中出现的其他版本暂未尝试,从上图中的红框点进去,可以看到详情:
centos 离线安装 nc centos 离线安装 armadillo_Linux_02
下载Binary Package:
centos 离线安装 nc centos 离线安装 armadillo_其他_03

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 解决包冲突

当解决循环依赖的问题时还可能遇到如下的包冲突的问题:
centos 离线安装 nc centos 离线安装 armadillo_其他_04
可能系统里已经存有某些rpm,所以会存在冲突的情况,这时有两种办法解决这类问题,一种是将其卸载,不过当有很多软件要卸载时还挺麻烦,可以考虑第二种方法,在安装的时候增加–replacefiles参数,如:

rpm -ivh xxx.rpm --replacefiles

当循环依赖、冲突都解决后,就可以顺利安装gcc了,之后再次输入gcc -v可以看到版本了:

[root@localhost 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都可以通过这种方式安装,内网环境也可以耍起来了。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。