开发的软件要支持多个版本的
Linux
平台,最低需要支持到
CentOS 7
,以及一些 CentOS 7 的衍生版本。
因为我日常并不使用 CentOS 7,如果在我本机编译的话,会有
glibc
版本问题,如果全部依赖都使用静态链接
glib
的方式也很麻烦,关于这个问题可以查看
glibc 版本(version 'GLIBC_2.14' not found)问题
。因此我一般都是再 CentOS 7 下进行编译打包发布,这样的话问题会少很多。Golang 的项目在 CentOS 7 下编译也不会出现
FATAL: kernel too old. Kernel
的问题。
如果使用虚拟机的话,就比较重量级了,所以我一般都使用
docker
环境来进行项目的编译。放这里做一个环境配置过程的记录和备份。
这个我已经推送到
hub.docker.com
上面了,可以直接拉取使用
docker pull liu2g/compilenv:v2
。
1、安装 docker 环境
#
这里就不详细说了,在Linux下基本就是几条命令搞定,可以参考下面文章:
【全面详细】Windows10 Docker安装详细教程
ArchLinux Wiki Docker (简体中文)
如何在 Ubuntu 上安装和使用 Docker
如何在debian11上安装docker
centos7安装Docker详细步骤(无坑版教程)
2、创建 centos 7 容器
#
使用下面命令拉取 centos 7 镜像到本地
Copy Highlighter-hljs
docker pull centos:7
使用下面命令创建 centos 7系统容器
Copy Highlighter-hljs
docker run -v /mnt/work:/mnt/work -v /home:/home --name=centos7go --hostname=centos7go --tty centos:7 /bin/bash
我这里绑定了两个目录,这是我需要用的,可以不使用。这里使用--tty参数,是为了让容器可以一直运行,避免退出exec就停止了容器运行。
如果需要,可以安装中文语言环境,参考 Docker中centos7的中文支持
Copy Highlighter-hljs