Centos7配置Go开发环境
Centos7配置Go开发环境
安装golang
在Linux下安装
这里使用系统管理包工具安装(所安装的并不是最新版本):
$ sudo yum install golang
安装完成后查看go版本以确认:
$ go version
可以看到对应的版本,说明安装成功。
设置环境变量
Go代码必须放在工作空间中,实际上就是一个目录,且必须包含src、pkg、bin三个子目录。它们的用途如下:
- bin:包含编译后的可执行命令
- pkg:包含包对象
- src:包含Go的源文件,它们被组织成包
因此首先创建go语言的工作空间:
$ mkdir $HOME/gowork
然后在配置文件中添加环境变量
$ vim /etc/profile
加入以下内容:
export GOPATH=$HOME/gowork
export PATH=$PATH:$GOPATH/bin
保存后执行source使其生效:
$ source /etc/profile
之后执行go env
来检查环境变量是否配置成功:
.png)
可以看到GOPATH以及变为我们设置的值,也可以执行cd $GOPATH
看是否进入对应的文件夹来验证是否配置成功。另外注意到另一个变量GOROOT,这是GO的安装目录,由于是使用yum安装的go,所以这个变量已经配置好了。此外,工作空间的位置不能和GO的安装目录相同。
在Windows下安装
在官网下载go1.11.windows-amd64.msi
,然后按照其提示一步步安装即可。安装完成后使用go env
查看环境变量,可以看到它已经帮我们设置好了。这里可以根据其默认的GOPATH创建工作空间,也可以创建了工作空间后再修改GOPATH。注意还需要在PATH环境变量中加上go的可执行文件位置,即$GOROOT\bin
Hello World
安装完go并且设置了环境变量后就可以开始go的编程了,也就来到了振奋人心的Hello World环节。
首先在工作空间中创建源代码目录:
$ mkdir $GOPATH/src/github.com/github-user/hello -p
然后在该目录下创建hello.go文件
$ vim hello.go
输入以下程序:
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
然后用go run
运行
$ go run hello.go
运行成功。
可以用 go
工具构建并安装此程序:
$ go install github.com/github-user/hello
可以在系统的任何地方运行此命令。go
工具会根据 GOPATH
指定的工作空间,在 github.com/github-user/hello
包内查找源码。此命令会构建 hello
命令,产生一个可执行的二进制文件。 接着它会将该二进制文件作为 hello
(在 Windows 下则为 hello.exe
)安装到工作空间的 bin
目录中。此后就可以直接输入该二进制文件名来运行该程序:
安装必要工具
安装VSCode
由于使用vim编辑器编程过于硬核,所以这里决定安装功能强大的VSCode编辑器。
因为使用yum安装的VSC是旧版本的,因此我之间从官网下载了最新版本的rpm文件进行安装。
$ rpm -ivh code-1.27.2-1536736788.el7.x86_64.rpm
安装完成后即可正常使用。
运行code命令即可用VSC创建文件。
$ code hello.go --user-data-dir
安装Git
因为go 语言的插件主要在 Github 上,因此需要先安装Git。
$ sudo yum install git
关于Git,我的这篇博客对Git的常用命令及日常使用方法做了一些总结:
安装VSC中的GO工具
在VSC中编写并保存go文件后,编辑器会提示你安GO工具。
直接在提示信息中安装可能会失败,因为会连接不上golang.org
,因此需要一些其他的方法(从GitHub上下载源码):
$ mkdir $GOPATH/src/golang.org/x/
$ go get -d github.com/golang/tools
$ cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf
$ go install golang.org/x/tools/go/buildutil
有了这些工具能使得在VSC中编写Go程序更加舒爽。
安装运行go tour
$ go get github.com/Go-zh/tour/gotour
$ gotour
运行命令后就会在浏览器中打开gotour,然后就可以愉快地学习Go语言了!