最近在之前的旧手机上用 Linux deploy 部署了一个 ubuntu,并使用 VNC+Xfce4 搭建了轻量级的桌面环境。本次尝试将 Golang 编译器安装在 ARM 平台。
由于 Golang 自 1.5 版本之后就完成了自举,所以可以用 golang 本身来编译 golang 的编译器。
本次编译采用交叉编译的方式,即在 Windows 平台上编译,后上传至目标系统。编译速度由编译平台的配置决定。(由于旧手机配置较低,编译时间较长,所以采用交叉编译的方式)
本次目标平台的 CPU 架构为 ARMv7l(armhfp)。
# 开始编译
我的电脑上已经安装 1.15 版本的 goalng 环境,所以本次不需要安装低版本的编译环境。
# 获取 Golang 源码
我们可以从 golang 的 github 主页下载 golang 编译器的源码。使用 git clone 到本地。
git clone https://github.com/golang/go.git |
# 开始编译
golang 源码中已经包含了编译脚本,首先先设置编译的环境变量。
set GOOS=linux | |
set GOARCH=arm |
设置完成后使用 go env 查看环境变量。
然后进入 src 目录,执行 all.bat 文件。执行后提示如下:
根目录没有版本信息文件,所以无法编译。于是我们到根目录下新建文件,命名为 VERSION,文件内容填写版本号,比如:go1.16beta1
再次尝试编译,没有报错。
# 上传并配置环境变量
压缩后,使用 rz 命令上传到目标系统上,并解压到 /usr/local 中。
配置环境变量:
vim /etc/profile | |
// 在最后一行添加 | |
export GOROOT=/usr/local/go | |
export PATH=$PATH:$GOROOT/bin | |
// wq保存退出后source一下 | |
source /etc/profile |
然后执行 go version 出现下图所示,安装完成。