在线安装gfortran的方法-CentOS8 or 阿里龙蜥

发布时间 2023-04-12 19:16:58作者: 济南小老虎

在线安装gfortran的方法-CentOS8 or 阿里龙蜥


背景

在阿里云上面进行了 speccpu2006的测试验证
但是发现总是很多包安装不过去

原因是阿里最小化安装的龙蜥系统. 缺少很多编译工具.
昨天晚上死活跑步过去发现是因为缺少部分编译工具
gfortran

报错信息

specmake: g++: Command not found
specmake: gfortran: Command not found

安装说明

需要说明一下. 现在网上大部分资料都是基于CentOS7的
因为阿里龙蜥宣称 100% 兼容 CentOS
所以导致一点. 很多地方是比较类似于CentOS8 但是又不同于CentOS8
进行编译工具的安装时就尤其重要了. 

这个地方耗费了好久的精力. 这里总结一下以便备忘.

核心策略是找到合适的 包源 并且进行安装
云服务最大的优点就在于此.

安装过程-设置

发现能够安装g++和gfortran工具的服务器 一般他们的包源是 @anaconda

但是在CentOS8 安装过的里面发现: 在 AppStream 的包源里面是有这个包的. 
所以需要想办法在 阿里龙蜥里面添加上这个包源.

只不过发现 阿里龙蜥默认的包源只有 BaseOS 这里没办法 需要增加一个AppStream的包源
之前自己研究过对应的 yum 包源设置 这里只需要修改一下 BaseOS的包源就可以了
主要方式如下:

cat >/etc/yum.repos.d/AnolisOS-AppStream.repo <<EOF
[AppStream]
name=AnolisOS-\$releasever - AppStream
baseurl=http://mirrors.cloud.aliyuncs.com/anolis/\$releasever/AppStream/\$basearch/os
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ANOLIS
gpgcheck=1
EOF

需要注意 EOF 方式创建文件时 变量需要使用 \$ 来进行转义, 避免丢失特定. 

安装

yum install gcc-c++-8*
yum install gcc-gfortran-8*

需要注意安装的不是epel包源里面的内容, 是 AppStream包源里面的内容. 

另外可以使用 yum list gcc* 查看所有的报信息

gcc-gdb-plugin.x86_64 
gcc-gnat.x86_64       
gcc-go.x86_64 

其实都是编译工具, 其他的要么是源码包要么是别的工具. 

gcc与glibc的区别

gcc 指的是  GNU Compiler Collection
其实是一套 编译工具的合集 里面有 c c++ java go 等等语言

glibc 是一个库文件集合 GNU libc 
是 GNU发布的 c library  
很多工具最终都是要看libc 里面的组建进行系统调用 访问硬件资源. 

glibc 是应用程序访问内核的桥梁, 他可以将很多系统调用进行合理的编写打包成库文件.类似于python的自建电池.
访问内核一方面可以使用 c语言库文件, 也可以直接使用系统调用. 但是直接使用系统调用可能不如 c 语言库性能好

gcc 是将源代码编译成可执行文件的工具.  
glibc 是可执行文件访问内核资源的桥梁.