go环境搭建

一、Linux环境搭建

本文搭建环境以Linux(Centos 6.5)为例,其他Linux环境相同

1. 手动安装 Go

1)下载 Go 发行版

从官方地址:https://golang.org/dl/ 上下载合适的 二进制发行版 (例如:go1.11.4.linux-amd64.tar.gz):

 1 wget https://dl.google.com/go/go1.11.4.linux-amd64.tar.gz 

2)提取压缩包

将压缩包放到 /usr/local 下

 1 tar -xzf go1.11.4.linux-amd64.tar.gz -C /usr/local 

3)建立软链接

 1 ln -s /usr/local/go/bin/* /usr/bin/ 

4)检查是否安装成功

如果输入 go version 显示出go版本号说明安装成功

[root@centos src]# go version
go version go1.11.4 linux/amd64

2. 设置 Go 开发环境

1)创建工作空间

我们创建三个目录,分别存放源码,编译生成的库文件,编译生成的二进制文件

src 目录包含Go的源文件,它们被组织成包(每个目录都对应一个包)
pkg 目录包含包 编译后生成的库文件
bin 目录包含包 编译后生成可执行程序。

路径可以根据自己选择合适工作空间及子目录:

/home/go_work/src 
/home/go_work/pkg
/home/go_work/bin

2)配置环境变量

编辑环境变量配置文件 vim /etc/profile 在末尾添加下面三行,然后source /etc/profile 让其在本次生效(每次在启动Linux时会自动source该文件),运行 go env 查看go环境变量配置是否正确

其中,GOROOT Go安装路径;

           GOPATH:工作目录。

export GOROOT=/usr/local/go
export GOPATH=/home/go_work/
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

3)测试 Go 源码

构建一个hello world程序来检查Go的安装是否正确,操作如下:

(1)在上面的 /home/go_work/src 路径下新建目录app(mkdir app) ,然后进入该目录,vim  hello.go 文件,内容如下:

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

(2)编译并运行

    第一种方法:编译 hello.go 文件,将编译后的可执行文件(hello,名字可以随便指定)放在 /home/go_work/bin/ 下,并使用绝对路径执行,或者直接执行编译后的 hello 都可以输出 hello, world。

[root@centos2 src]# go build -o /home/go_work/bin/hello /home/go_work/src/app/
[root@centos2 src]# /home/go_work/bin/hello
hello, world
[root@centos2 src]# hello
hello, world

  第二种方法:直接执行  go install  项目名称,可以将编译后的二进制文件(app)放在 /home/go_work/bin/ 下。

[root@centos2 src]# go install /home/go_work/src/app
[root@centos2 src]# app
hello, world

 (3)go get 与 go install

     后面在学习Go的过程中经常会用到第三方API,也就需要安装第三方API的库,我们可以使用 go get 很方便的实现第三库的下载安装,在使用go get时需要安装Git。

      go get会做两件事:

  • 从远程下载需要用到的包
  • 执行go install

      go install

  • go install 会生成可执行文件直接放到bin目录下,当然这是有前提的,你编译的是可执行文件,如果是一个普通的包,会被编译生成到 pkg 目录下该文件是.a结尾

(4)关于go的整体一个开发目录

go_work     // go_work为GOPATH目录
  -- bin
     -- myApp1  // 编译生成
     -- myApp2  // 编译生成
     -- myApp3  // 编译生成
  -- pkg
  -- src
     -- myApp1     // project1
        -- models
        -- controllers
        -- others
        -- main.go 
     -- myApp2     // project2
        -- models
        -- controllers
        -- others
        -- main.go 
     -- myApp3     // project3
        -- models
        -- controllers
        -- others
        -- main.go

3. 卸载 GO

卸载 Go 就是将安装Go的东西全部删除

(1)删除 go 目录:

rm -rf /usr/local/go

(2)删除软连接:

rm -rf /usr/bin/go

4. 升级 Go

升级Go就是卸载重装的过程:

1)卸载 Go

2)安装 Go

二、Windows环境搭建

1.准备工具

由于墙的存在,很多网址无法下载,推荐https://studygolang.com/dl去下载。当前我下载的是 go version go1.8 windows/amd64,当然也可以下载最新版本,安装的时候一路下一步(也可以改变安装的路径)直到完成。

2. 配置环境变量

GOPATH是工作目录(自己设置在 F:\go\project)

GOROOT是安装go的根目录(默认是在C:\Go\bin)

将上面两个变量添加到系统变量中(%GOROOT%\bin;%GOPATH%;%GOPATH%\bin;)

     

3. 验证安装是否成功

(1)如果在终端输入go version 显示出 go 版本号说明安装成功

 

(2)测试 Go 源码

在 F:\go\project 创建三个目录,分别存放源码,编译生成的库文件,编译生成的二进制文件

src 目录包含Go的源文件,它们被组织成包(每个目录都对应一个包)
pkg 目录包含包 编译后生成的库文件
bin 目录包含包 编译后生成可执行程序

在src目录下创建hello.go 文件,内容如下:

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

(3)运行hello.go

   到 F:\go\project\src 路径下运行 go run hello.go,如果出现  hello, world 说明 Go已被正确安装

三、Windows 下Go开发工具

   这里将介绍Sublime Text 3(以下简称Sublime)+ GoSublime + gocode的组合,那么为什么选择这个组合呢?

   1. 安装Package Control 插件

  • 自动化提示代码,如下图所示
  • 保存的时候自动格式化代码,让您编写的代码更加美观,符合Go的标准。
  • 支持项目管理
  • 支持语法高亮
  • Sublime Text 3可免费使用,只是保存次数达到一定数量之后就会提示是否购买,点击取消继续用,和正式注册版本没有任何区别。

  接下来就开始讲如何安装,下载 Sublime,根据自己相应的系统下载相应的版本,然后打开Sublime,打开之后安装 Package Control:Ctrl+` 打开命令行,执行如下代码:

  适用于 Sublime Text 3:

import  urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())

适用于 Sublime Text 2:

import  urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;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,可以发现在在菜单栏多了一个如下的栏目,说明Package Control已经安装成功了。

 我用上面的方法安装 Package Control 各种问题,最后选择离线安装:

 首先下载 Package Control 安装包,地址:https://github.com/wbond/package_control,下载并解压缩到  Preferences -> Browse Packages 这目录下,然后重启Sublime,就可以看见安装的 Package Control 包:

   2. 安装 GoSublime 插件

    网上的方法是:打开刚才安装的 Package Control(Preferences -> Package Control)然后输入install,如下,点击红色框,稍等一会会弹出一个框,输入GoSublime,就可以找到要安装的GoSublime 开始安装 GoSublime 包,很遗憾 sublime3 没有这个包(如果你发现有,那就按照这种方法安装):

    我在点击 Package Control 时遇到下面的问题,经过百度说是因为要访问的网站在国外特别慢:

    解决方法如下:

    方案一:在C:\Windows\System32\drivers\etc\hosts文件中加入如下代码: (注:就是添加本地域名映射,如果不行就使用方案二)

50.116.34.243 sublime.wbond.net

    方案二:
    1.下载这个网站的内容并保存到本地:    https://packagecontrol.io/channel_v3.json
    注意sublime的版本,这个文件默认是3.0.0
    关键字为: schema_version

    2.打开配置文件,(添加下载好的文件路径)
    Preferences >Package Settings >Package Control >Settings -User,添加如下内容(注意文本格式,路径换成自己的),实测两种方法都不可行

"channels": ["D:\\SublimePlugin\\channel_v3.json" ]

    现在使用离线安装的方法,到地址https://github.com/DisposaBoy/GoSublime.git 下载GoSublime安装包并解压缩到 Preferences -> Browse Packages 这目录下,此时就可以看到GoSublime

   3. 配置 GoSublime

    在Settings - User中(下图)写入环境变量(替换成你自己的GOPATH和GOROOT):

{
    "env": {
        "GOPATH": "F:\\Go\\project",
        "GOROOT": "c:\\go"
    }
}

 

   4. 安装 gocode 插件

   gocode是go语言自动补全守护程序。这个程序被称为守护进程是因为它使用了客户端服务器的架构,自动补全的速度特别快,热缓存的自动补全时间仅仅为30ms,几乎感觉不到。

   在命令行中输入:

go get -u github.com/nsf/gocode

   gocode 将会安装在默认`$GOBIN`,另外建议安装 gotests(生成测试代码),先在 sublime 安装 gotests 插件,再运行:

go get -u -v github.com/cweill/gotests

   5. 验证是否安装成功

   打开Sublime,在$GOPATH下新建hello.go文件输入下面的代码过程中,看看语法是不是高亮了,输入import是不是自动化提示了,import "fmt"之后,输入fmt.是不是自动化提示有函数了。
如果已经出现这个提示,那说明你已经安装完成了,并且完成了自动提示。

package main

import (
    "fmt"
)

func main()  {
    fmt.printf("Hello world")
}

    如果没有出现这样的提示,一般就是你的$PATH没有配置正确。你可以打开终端,输入gocode,是不是能够正确运行,如果不行就说明$PATH没有配置正确。(针对XP)有时候在终端能运行成功,但sublime无提示或者编译解码错误,请安装sublime text3和convert utf8插件试一试

更多IDE安装清查看: https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/01.4.md

    6. 安装CTags插件

    CTags插件是追踪函数工具,比如我们使用fmt.Println("hello")想要看Println在哪定义,可以通过CTags这个插件来实现,如果上面的Package Control正常,可以使用在线的方法安装。

    我是通过离线的方法安装:

    首先下载CTags包并解压到任意位置(比如我放在 D:\sublimeCtags):

    地址:https://sourceforge.net/projects/ctags/files/ctags/5.8/ctags58.zip/download?use_mirror=nchc&r=http%3A%2F%2Fctags.sourceforge.net%2F&use_mirror=nchc

    将 Settings-Default 的内容全部复制到Settings-User,然后找到Command行,把解压后的ctags的可执行文件的路径复制到command后的引号内:

    

   如果想要对某个工程中的所有文件进行函数跟踪,比如我的 go_dev 这个工程,将鼠标放到该工程右键点击下面红框内的 CTags:Rebuild Tags,会生成一些相关文件:

   然后将鼠标放到函数所在行,点击右键 Goto Definition 就可以找到函数定义的位置:

   也可以使用命令行:

   在cmd中cd进入源码目录(比如D:/source_code),在该目录下执行下列命令:

d:\source_code>ctags -R -f  .tags

 参考文献:

  • https://blog.csdn.net/q176782/article/details/79050851
  • https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/01.4.md
posted @ 2019-01-11 23:39  pointerC++  阅读(384)  评论(0编辑  收藏  举报