树莓派安装golang和beego,bee

golang环境搭建回顾

Posted by John Mactavish on July 24, 2019

简介

  我发现之前搭建golang环境的时候竟然没有记博客,我现在需要在树莓派上重新搭建一次,那就重新再找一次资料,这次一定要把它记录下来。我在树莓派上面搭建golang环境的原因是来尝试搭建网站,所以还需要安装beego框架和bee工具,它们是基于Go语言的后端框架。

过程

  参考以前的博客,我成功ssh进入了树莓派系统。修改网络配置连接上无线网,然后

sudo apt-get update sudo apt-get upgrade

因为我已经很久没有登录树莓派了(期末考试嘛。。。),所以需要更新一下。

sudo apt install golang
这样得到的golang是1.7版本的,locate一下,文件夹散布在/usr/share和/usr/lib中,这就很奇怪了,不是标准的目录格式,那我怎么配置GOROOT之类的东西。仔细研究发现,本体是/usr/lib/go,它链接到/usr/lib/go-1.7,里面有的是真实的文件夹,有的是指向/usr/share里面目录的链接,总体是标准的GOROOT目录。

  我在wsl里面的apt得到可是1.10版本的golang,实际好像不是用apt安装的,版本是1.12.5。我希望两者版本一致,参考网上一篇博客,这样操作:

wget https://dl.google.com/go/go1.12.5.linux-armv6l.tar.gz
tar -C /opt -xzf go1.12.5.linux-armv6l.tar.gz

https://dl.google.com/ 似乎不能通过浏览器直接访问,但wget确实可以得到资源,这是armv6l的预编译版本。
  然后配置环境变量,打开.profile,添加

export GOROOT=”/opt/go” export GOPATH=”$HOME/GoProjects” export PATH=”$GOROOT/bin:$GOPATH/bin:$PATH”

创建GOPATH文件夹

mkdir ~/GoProjects/{bin,pkg,src}

注意花括号的用法。最后

go get github.com/astaxie/beego go get github.com/beego/bee

这个需要一定的时间,不会有stdout的显示,耐心等待。

例1

func main() {
    i := 1
    s := []string{"A", "B", "C"}
    i, s[i-1] = 2, "Z"   //s[i-1]的i取原值 1,因为计算左侧地址时,同时赋值还未进行
    fmt.Printf("s: %v \n", s) // s: [Z,B,C] 
}

例2

func main() {   //一个赋值panic,另一个正常赋值
    a := []int{1, 2, 3, 4}
    defer func(a []int) {
        fmt.Printf("a: %v\n", a)
    }(a)
    a[0], a[1] = a[2], a[4]  //a: [1 2 3 4]
                             //panic: runtime error: index out of range
}

例3

func main() {  //计算右侧表达式时panic,所有赋值无法进行
    a := []int{1, 2, 3, 4}
    defer func(a []int) {
        fmt.Printf("a: %v\n", a)
    }(a)
    a[0], a[1] = a[2], a[4]   //a: [1 2 3 4]
                              //panic: runtime error: index out of range
}

参考

《GO语言圣经》
jiang_mingyi的CSDN博客 ```

最后附上GitHub:https://github.com/gonearewe