查看: 817|回复: 0

【RPi2B】搭建Golang1.4.2开发环境

[复制链接]
  • TA的每日心情
    开心
    2015-9-7 16:19
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2015-9-9 09:00:33 | 显示全部楼层 |阅读模式
    分享到:
    Golang是世界上最牛逼的语言!!!
    Golang是世界上最牛逼的语言!!!
    Golang是世界上最牛逼的语言!!!
    重要的事说三遍!
    Golang1.5版本已经发布,其牛逼的性能越来越受到众多公司的青睐,滴滴打车开价3~5W的月薪招“对Golang感兴趣不必擅长Golang但必须有一门擅长的编程语言”的人,瞬间有种逆袭的感觉,投了简历,没要我!!!居然不要我!!!
    咳咳,言归正传,话说,我对Golang一直非常推崇,从早期的1.0版本就开始用,1.4.2的时候已经开始在公司开发服务器后端,前几天拿到爱板网送的RaspberryPi B2(以下简称2B)板卡,想配合着之前爱板网送的BananaPiR1(以下简称R1)板卡,做一套家庭云,BananaPiR1负责网络安全和数据分发,RaspberryPiB2负责数据的处理,也就是说R1可以作为一个路由器,下面挂N个2B,这N个2B可以作为一个小型的家庭云计算中心。
    我刷的是raspbian-wheezy镜像,自身带了Python2和Python3,但是我不太喜欢Python,于是决定搭建一个Golang的环境,Golang提供了很多平台的二进制安装包,除了ARM平台……所以只能通过源代码安装。
    以下为整个安装步骤:
    一、安装基础软件包
    虽然2B自带了nano和vi,但是我还是比较喜欢vim,在安装vim之前,先执行以下更新:
    sudo apt-get update
    2B的登录账户为pi,但是执行更新和安装的时候,还是需要管理员权限,因此要用sudo。
    更新结束后,执行:
    sudo apt-get install vim
    vim安装结束后,安装gcc和libc6-dev:
    sudo apt-get install gcc libc6-dev
    二、下载Golang源代码
    Golang源代码的下载方式有三种:
    1、在https://golang.org/dl/下载,Golang1.4.2,一定看清楚版本,这个非常重要;
    2、使用git下载。
    Golang的代码使用git进行管理的,可以直接执行以下命令:
    $ git clone https://go.googlesource.com/go
    $ cd go
    $ git checkout go1.4.2
    当然,在这之前需要已经安装了git,2B自身已经安装了git了,所以就不需要再安装了,但是!!!在中国大陆,由于众所周知的原因,这种方式会失败,不过,别灰心,告诉你第三种方式;
    3、Golang的代码托管在github上,幸好,github没有被和谐,切换到一个你想安装Golang的目录并保证该目录下没有go这个文件夹,比如我切换到/usr/local/下,执行以下命令:
    git clone https://github.com/golang/go.git
    虽然,这个项目也不过几十兆,但是,我这100M的带宽,愣是下载了三个多小时,也是让它跪了!
    三、编译并安装Golang
    刚才说了三种获取Golang源代码的方法,第一种是直接下载,另外两种都是使用git来获取,因此安装方法分为两种情况来说:
    1、直接下载源代码:
    我尝试用1.4.2的安装,安装成功,说一下方法:
    直接讲源代码下载到2B上,或者下载到电脑上,用scp传到2B上,然后执行:
    tar zxvf go1.4.2.src.tar.gz
    go1.4..2src.tar.gz是下载的压缩包的名字,根据自己的情况来写。解压完成后,看到一个go文件夹,我准备把环境搭建在/usr/local/下面,执行以下命令:
    sudo cp –rf go /usr/local
    go文件夹被复制到/usr/local/下,进入到/usr/local/go/src/下,执行以下命令:
    sudo ./all.bash
    慢慢等吧,几十分钟到两三个小时,就安装成功,你会看到末尾是这样的信息:
    ALL TESTS PASSED
    ---
    Installed Go for linux/amd64 in /home/you/go.
    Installed commands in /home/you/go/bin.
    *** You need to add /home/you/go/bin to your $PATH. ***
    这是让设置环境变量,别急一会再说。
    2、试用git下载Golang:
    下载完成后,会看到当前目录下面有个go文件夹,我用git下载的时候,将go下载到/usr/local/下面。
    然后进入/usr/local/go/src/下,执行以下命令:
    sudo ./all.bash
    慢慢等吧,几十分钟到两三个小时,就安装成功,你会看到末尾是这样的信息:
    ALL TESTS PASSED
    ---
    Installed Go for linux/amd64 in /home/you/go.
    Installed commands in /home/you/go/bin.
    *** You need to add /home/you/go/bin to your $PATH. ***
    这是让设置环境变量,别急一会再说。
    四、设置环境变量
    (一)配置Golang编译环境
    Golang的环境变量主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义。
    1、GOROOT
    主要代表golang树结构目录的路径,也就是上面git检出的go目录。一般可以不用设置这个环境变量,因为编译的时候默认会以go目录下src子目录中的all.bash脚本运行时的父目录作为GOROOT的值。为了保险起见,可以直接设置为go目录的路径。
    2、 GOOS和GOARCH
    分别代表编译的目标系统和平台,可选值如下:
    GOOS    GOARCH
    darwin    386
    darwin    amd64
    dragonfly   386
    dragonfly   amd64
    freebsd    386
    freebsd    amd64
    freebsd    arm
    linux     386
    linux    amd64
    linux    arm
    netbsd    386
    netbsd    amd64
    netbsd    arm
    openbsd    386
    openbsd    amd64
    plan9    386
    plan9    amd64
    solaris    amd64
    windows    386
    windows    amd64
    需要注意的是这两个值代表的是目标系统和平台,而不是编译源代码的系统和平台。树莓派的RaspBian是linux系统,所以这些GOOS设置为linux,GOARCH设置为arm。
    3、 GOARM
    表示使用的浮点运算协处理器版本号,只对arm平台有用,可选值有5,6,7。如果是在目标平台上编译源代码,这个值可以不设置,它会自动判断需要使用哪一个版本。
    总结下来,在树莓派上设置golang的编译环境变量,可编辑$HOME/.bashrc文件,在末尾添加下面内容:
    export GOROOT=你的go目录路径(我这里是/usr/local/go)
    export GOOS=linux
    export GOARCH=arm
    编辑完后保存,执行source ~/.bashrc命令让修改生效。
    (二)配置Golang运行环境:
    1、编译Golang源代码完成后,go目录下会生成bin目录,里面就是go的运行脚本。为了以后使用方法,可以将这个bin路径添加到PATH环境变量中。同样编辑~/.bashrc文件,因为前面设置过GOROOT环境变量指向go目录了,所以只需要在末尾加上
    export PATH=$PATHGOROOT/bin
    保存后同样执行source ~/.bashrc命令让环境变量生效。
    2、另外还需要配置GOPATH,也就是工程的环境变量:
    这里涉及到Golang代码的结构。我举一个我自己的例子,我在pi这个用户下面创建一个GoPrj的文件夹用来保存我所有的Golang项目的工程,路径如下:
    /home/pi/GoPrj/
    在GoPrj下,创建server文件夹,这是我的一个项目,名字就叫server,然后执行以下命令:
    vim ~/.bashrc
    在最后一行加上:
    export GOPATH=$PATHGOROOT/bin:/home/pi/GoPrj/server
    以后在GoPrj下每加入一个项目,比如server,就在这句话后面接着写上路径,注意用冒号分割,比如加上一个项目叫hello,那么应该在上面那句话应该为:
    export GOPATH=$PATHGOROOT/bin:/home/pi/GoPrj/server:/home/pi/GoPrj/hello
    在server下创建src、bin、pkg三个文件夹,src下创建server文件夹,server文件夹下面创建server.go文件,整个目录树如下:
    pi@raspberrypi~/GoPrj $ tree
    .
    └── server
      ├── bin
      ├── pkg
      └── src
      └── server
      └── server.go
    5 directories, 1 file
    先写一段helloworld吧,server.go代码如下:
    package main
    import (
    "fmt"
    )
    func main(){
      fmt.Println("Hello Golang World!")
    }
    保存后,在GoPrj/sercer/bin下执行go build server,就可以得到server这个可执行程序,运行可得如下结果:
    Hello Golang World!
    五、结束
    到此,在2B上搭建Golang1.4.2开发环境已经结束,接下来Enjoy Golang吧!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-29 23:03 , Processed in 0.117535 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.