Go与GAE开发环境配置

Go源代码安装

Go源代码使用mercurial管理的所以先要安装mercurial, 常用的开源库一般都放在github.com,最好把git也安装上。

1
sudo apt-get install mercurial git

安装好版本管理工具之后就clone Go源码,然后运行all.bash安装。

1
2
3
hg clone -u release https://code.google.com/p/go
cd go/src
./all.bash

运行完all.bash之后要设置相关的环境变量,在.profile (mint下面)或者.bash_profile (其他linux)里面加入如下代码。

1
2
3
4
5
6
export GOOS=linux
export GOARCH=386 # 32位是386, 64位是amd64
export GOROOT=$HOME/go # 我的go目录是放在home的下面
export GOBIN=$GOROOT/bin
export GOPATH=$HOME/Workspaces/iweb # 指向工作目录而不是go安装目录
export PATH=$PATH:$GOBIN

想加入的变量马上在当前的Terminal中生效可以运行source .profile,注意这只会在当前的命令行中生效。
编写Hello World! 程序hello.go,运行go run hello.go验证是否正确输出结果。

到此Go环境就安装好了。

GAE for Go安装

https://developers.google.com/appengine/downloads 去下载Google App Engine SDK for go。 我下载的版本是go_appengine_sdk_linux_386-1.7.4.zip,使用unzip go_appengine_sdk_linux_386-1.7.4.zip解压。

配置相关的环境变量:

1
2
3
export GAEGO=$HOME/google_appengine
export GOPATH=$HOME/Workspaces/iweb:$GAEGO/goroot #把GAE的环境变量放在这里是为了方便使用gocode对GAE的库进行代码提示。
export PATH=$PATH:$GOBIN:$GAEGO #把GAEGO放到这里是为了方便使用appcfg.py和dev-server.py工具

GAE也配置好了。

开发工具Sublime Text配置

具体的开发工具选择与配置,可以参考https://github.com/astaxie/build-web-application-with-golang/blob/master/1.4.md

Sublime Text2+GoSublime+gocode+MarGo组合使用能实现代码自动提示,保存时自动格式化代码,语法高亮,不过Sublime Text2在linux下不支持中文输入。

  1. 安装gocode(需要先安装git),无论是使用vim或者emace等编辑器,一般都是gocode作为代码自动提示的工具的。

    1
    go get -u github.com/nsf/gocode
  2. 安装Margo

    1
    go get -u github.com/DisposaBoy/MarGo
  3. 安装Sublime Text2,可以去http://www.sublimetext.com/下载最新版本解压,然后运行sublime_text,也可以使用apt-get安装。

    1
    2
    3
    sudo add-apt-repository ppa:webupd8team/sublime-text-2   
    sudo apt-get update
    sudo apt-get install sublime-text
  4. 安装Package Control,打开sublime-text,然后按Ctrl+`快捷键打开命令行,执行如下代码:

    1
    import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

    重启sublime-text就可以看到菜单中的Preferences-> Package Control。

  5. 安装GoSublime,点击Package Control菜单或者按Ctril+Shift+p快捷键打开Package Control,输入pcip,按Enter键。输入GoSublime,按确定就开始安装了。同理应用于SidebarEnhancements和Go Build。安装完Go Build之后,在Tools-> Build System中选择Automatic即可。按Ctrl+b可以直接编译运行,在最下面的Gsshell中输入go build hello.go或者go run hello.go测试编译运行。

要对GAE的api进行代码提示GOPATH要如下设置:

1
export GOPATH=$HOME/Workspaces/iweb:$GAEGO/goroot

把个人的项目空间放在前面,GAE的goroot放在后面。因为使用go get安装第三方库的时候是把代码放到第一个GOPATH中,即$HOME/Workspaces/iweb,而不是放在go的安装目录或GAE的安装目录。

到目前为止Go的开发环境就配置好了。