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 clonehttps://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=$PATH GOROOT/bin 保存后同样执行source ~/.bashrc命令让环境变量生效。 2、另外还需要配置GOPATH,也就是工程的环境变量: 这里涉及到Golang代码的结构。我举一个我自己的例子,我在pi这个用户下面创建一个GoPrj的文件夹用来保存我所有的Golang项目的工程,路径如下: /home/pi/GoPrj/ 在GoPrj下,创建server文件夹,这是我的一个项目,名字就叫server,然后执行以下命令: vim ~/.bashrc 在最后一行加上: export GOPATH=$PATH GOROOT/bin:/home/pi/GoPrj/server 以后在GoPrj下每加入一个项目,比如server,就在这句话后面接着写上路径,注意用冒号分割,比如加上一个项目叫hello,那么应该在上面那句话应该为: export GOPATH=$PATH GOROOT/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("HelloGolang World!") } 保存后,在GoPrj/sercer/bin下执行go buildserver,就可以得到server这个可执行程序,运行可得如下结果: Hello Golang World! 五、结束 到此,在2B上搭建Golang1.4.2开发环境已经结束,接下来Enjoy Golang吧! |