CentOS下GO开发环境安装与配置

前情提要

Win10环境下安装配置VirtualBox,搭建CentOS私有云一节中我们已经成功的配置好了虚拟机上的CentOS私有云,今天就来研究一下GO的开发环境的安装与配置。

安装、配置步骤

1. 安装golang

可以选择在官方下载页处找到最新的版本来下载安装,这里省事起见选择了直接用系统包管理工具安装:

1
# sudo yum install golang

安装完后调用go version命令查看版本号,这里安装的是go 1.9.4

查看go都安装在了哪里:

1
# rpm -ql golang

2. 配置golang环境

go工具为公共代码仓库中维护的开源代码而设计,用go所编写的代码必须放在工作空间内,它包含三个子目录:

  • src目录包含Go的源文件,它们被组织成包(一个目录对应一个包),是运行go installgo run等命令时的当前路径
  • pkg目录包含包对象(golang编译的.a中间文件)
  • bin目录包含可执行文件

创建工作空间目录并设置GOPATH:

1
2
# mkdir $HOME/gowork
# export GOPATH=$HOME/work

并将工作空间中的bin目录添加到PATH中,以便以后直接运行安装的go程序:

1
# export PATH=$PATH:$GOPATH/bin

最后使这些配置生效:

1
# source $HOME/.profile

检查配置可以通过:

1
# go env

3. 安装vscode编辑器与其他

vscode安装

在开始愉快的用go玩耍前还需要安装一款适合你的编辑器,这里选择的是vscode,巨硬大法好嘛。

官方教程中有展示各个平台的安装流程,在CentOS平台上的安装命令:

1
2
3
4
# sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
# sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
# yum check-update //检查更新
# sudo yum install code

git安装

打开vscode后如果你没有安装git那么它会提醒你安装,如果你之前使用yum命令安装过的话它会提醒你版本太老(CentOS下),所以这里选择手动安装最新版本的git。

首先安装一些后续需要的依赖包:

1
2
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install gcc perl-ExtUtils-MakeMaker

接着如果之前有装过旧版本的话需要卸载:

1
# yum remove git

然后wget下载官方最新版本:

1
2
# wget https://www.kernel.org/pub/software/scm/git/git-2.9.2.tar.gz
# tar -zxvf git-2.9.2.tar.gz

最后,编译安装,配置环境:

1
2
3
4
5
# cd git-2.9.2
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc

如果安装出错,应该是还有什么依赖没有安装好,根据提示手动安装就可以。

检查git版本:

1
2
# git version
git version 2.9.2

注意:如果安装完查看版本不是我们安装的最新版,请重新执行下面的操作

1
2
3
# yum remove -y git
# source /etc/bashrc
# git --version

工具包安装

现在总能够开始写go了吧?在vscode创建一个hello.go刚写了条package就发现又报错了,原来是很多golang的tools没有安装,根据vscode的提示一键安装,然而golang.org并不能连上,于是,这一步也要我们手动安装。

首先在go工作空间的src目录下建立一个golang.org文件夹,在其中再建立一个x文件夹,cd切换到x文件夹下,下载插件包:

1
2
# git clone https://github.com/golang/tools.git tools
# git clone https://github.com/golang/lint.git lint

执行完毕后,在x文件夹下会多两个文件夹tools和lint。

最后执行安装命令,安装在vscode中没有安装的工具包,例如:

1
2
3
4
5
# go install golang.org/x/tools/cmd/guru
# go install golang.org/x/tools/cmd/gorename
# go install golang.org/x/tools/cmd/gorename
# go install golang.org\x\lint\golint
...

配置成功!接下来可以使用vs code创建hello.go测试一下:

1
2
3
4
5
6
7
package main

import "fmt"

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

在终端运行!

1
2
# go run hello.go
hello, world

4. 绑定远程仓库

现在你的go工作空间的架构应该类似这样:

1
2
3
4
5
6
7
8
9
10
bin/
... # 可执行命令
pkg/
linux_amd64/
... # 包对象
src/ #源码
github.com/
...
golang.org/
...

此时需要在github.com文件夹下创建一个和你自己github账号名称一样的文件夹,这个文件夹作为以后与远程库同步的存放go代码的文件夹,在这个文件夹下可以创建各种包。

在你的github账号上手动创建一个远程库,之后根据提示,在本地文件夹中:

1
2
3
4
5
6
# echo "# xxx" >> README.md
# git init
# git add README.md
# git commit -m "first commit"
# git remote add origin https://github.com/username/xxx.git
# git push -u origin master

之后每次git add、commit后要push时,都要输入自己的账号、密码来操作。当然也可以选择用git ssh,这里就不介绍了。