最近买了个pi,想在上面装个golang环境,用于学习,发现网上资料都不全,当我在看《Go语言学习笔记》的时候,发现里面有教如何在linux上编译安装Go,既然是源码自举编译,相信树莓派上面也一样可以支持,所以就试了一下:

背景:

  • golang暂时没有针对arm的预编译包,所以需要源码编译golang。
  • 自Go1.5实现自举(bootstrapping)以后,需要保留两个版本的Go环境。建议初学者先下载C版本的1.4,用GCC完成编译。
  • 自举是指用编译的目标语言编写其编译器,简单点说就是用Go语言编写Go编译器。请提前安装gcc、gdb、binutils等工具。

先安装Go1.4.3

# 1.下载源码
$ wget https://storage.googleapis.com/golang/go1.4.3.src.tar.gz

# 2.解压
$ sudo tar xf go1.4.3.src.tar.gz -C /usr/local/

# 3.因为最终要使用高版本的go,所以将其重命名
$ sudo mv /usr/local/go /usr/local/go1.4.3

# 4.进入源码目录,编译
$ cd /usr/local/go1.4.3/src
$ sudo ./make.bash

# 5.测试
$ /usr/local/go1.4.3/bin/go version
go version go1.4.3 linux/arm复制代码

接下来下载golang源码,并用Go1.4进行编译

# 1.下载源码(此处直接从github下载golang源码,因为不用fq)
$ cd /usr/local
$ sudo git clone https://github.com/golang/go

# 2.进入源码目录,使用Go1.4编译
$ cd /usr/local/go
$ sudo GOROOT_BOOTSTRAP=/usr/local/go1.4.3 ./make.bash

# 3.测试
$ /usr/local/go/bin/go version
go version devel +ca360c3992 Sat Oct 7 22:12:36 2017 +0000 linux/arm复制代码

编译部署完成,现在设置工作目录和环境变量

# 1.创建工作目录
sudo su
cd / && mkdir -p /data/www/go

# 2.添加环境变量并使其生效
vim /etc/profile
# 添加如下设置项
export GOROOT=/usr/local/go
export GOPATH=/data/www/go
export PATH=$GOROOT/bin:$PATH

# 保存退出,并使其生效
$ source /etc/profile

# 3.输出环境变量,看是否生效
$ go env
GOARCH="arm"
GOBIN=""
GOEXE=""
GOHOSTARCH="arm"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/data/www/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_arm"
GCCGO="gccgo"
GOARM="7"
CC="gcc"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build406121462=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"复制代码

好了,编译成功,收工。

如果不想这么麻烦的话,可以在树莓派上使用docker来构建golang环境,也是极好的。

参考:

  • 《Go语言学习笔记》 -- 雨痕

在树莓派上编译安装golang环境相关推荐

  1. 树莓派指定python2编译_在树莓派上编译安装ROS2

    最新编译方式已经修改,请参考官网最新文档: ------------------------------------下文已经过时 仅供参考------------------------------- ...

  2. 树莓派上编译安装hostapd

    树莓派上可以直接用命令安装hostapd. apt-get install hostapd 使用时遇到错误日志: random: Only 15/20 bytes of strong random d ...

  3. Fedora12上编译安装gdb-7.2

    在Fedora12上编译安装gdb-7.2:编译安装gdb和gdbserver 1. 下载gdb7.2:  ftp://sourceware.org/pub/gdb/releases/gdb-7.2a ...

  4. CentOS6.9编译安装LNMP环境

    CentOS6.9编译安装LNMP环境 今天尝试一下用编译的方式来搭建lnmp运行环境.所有软件都采用当前最新版本,除了CentOS.这是由于目前企业大多数应该都还在使用CentOS6的缘故,并且Ce ...

  5. centos安装golang环境

    centos安装golang环境 突然想试一下虚拟机里面用linux做开发环境行不行,Ubuntun弄了半天老是连不上网络,选了centos,安装了图形界面 下载golang [root@192 wq ...

  6. 一键编译安装LAMP环境

    一键编译安装LAMP环境 说明:请把所需要的软件包放在文件夹中,把文件夹重命名为packages,然后压缩成packages.zip的包,上传到linux系统上任何目录都可以,然后在上传package ...

  7. CentOS 7上编译安装PHP 8.1及Nginx 配置支持PHP

    CentOS 7上编译安装PHP 8.1/及Nginx 配置支持PHP 编译安装 Php[端口:9000] 安装编译环境依赖包 yum -y install gcc gcc-c++ glibc aut ...

  8. Ubuntu上编译安装迅雷XwareDesktop

    Ubuntu上编译安装说明 本页介绍如何在Ubuntu 14.04及以上的系统上手动编译安装Xware Desktop. 由于迅雷官方没有发布64位版的xware,Xware Desktop的作者无法 ...

  9. 源码编译安装LAMP环境

    1.请描述一次完整的http请求处理过程: 2.httpd所支持的处理模型有哪些,他们的分别使用于哪些环境. 3.源码编译安装LAMP环境(基于wordpress程序),并写出详细的安装.配置.测试过 ...

最新文章

  1. mysql unsigned zerofill_Mysql中Unsigned和Zerofill数据型的使用(细节也很重要啊)
  2. logic:equal 标签的使用(转)
  3. 用Python标准库turtle画一只老虎,祝您新年虎虎生威,大吉大利
  4. MOSS 2007 错误0x80040E14解决
  5. SAR舰船检测的学习笔记
  6. 蓝桥杯 PREV-27 历届试题 蚂蚁感冒
  7. python 逻辑回归sklearn_python – 分类:使用sklearn进行PCA和逻辑回归
  8. Review JDBC
  9. tornado异步请求的理解
  10. RN开发系列<2>--基本调试
  11. python如何执行部分代码_python如何运行代码
  12. 寻路算法1:A星寻路和navmesh寻路的技巧和优化
  13. 集群分布式存储-MFS
  14. hdu 4190 Distributing Ballot Boxes
  15. Mac 安装 TeamViewer 打开应用闪退
  16. 杨森翔书法:立马越王台
  17. Android逆向writeup,[原创]腾讯apk逆向系列WriteUp
  18. 网络安全学习第6篇 - 爆破及PE文件解释
  19. 最新微信QQ域名防封、微信群活码系统
  20. 关于5944空间的所谓免费

热门文章

  1. iostat查看服务器io
  2. 怡丰机器人上市_【利元亨 | 复盘】十家自动停车机器人大PK,你更看好谁?
  3. gin 如何返回html_Gin(三):与模板配合使用 tmpl,go web 开发最火框架之一
  4. ue4账号注册不了_英雄联盟手游拳头账号注册
  5. python的logo图_Turtle绘画Python-logo
  6. Web Components 入门
  7. vbs 获取计算机主机名,vbs 获取主机名
  8. android 360相机,相机360app安卓版
  9. Python出现AttributeError: module ‘tkinter‘ has no attribute ‘messagebox‘,已解决
  10. CSS自定义动画@keyframes的使用