正文
在线安装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 是可执行文件访问内核资源的桥梁.