如何在Ubuntu 16.04 LTS中的golang中正确使用多个工作区?

时间:2016-09-23 14:49:08

标签: ubuntu go environment-variables ubuntu-16.04

我在Ubuntu 16.04 LTS中安装了go-1.6。我还设置了两个不同的工作区和$ GOPATH,通过指定其中两个工作区的位置。

但其中一个工作区(主工作区或主工作区)正常工作而另一个工作区(辅助工作区)不工作。我希望使用辅助工作区来实现golang中的web应用程序开发,以及我的项目的主要工作区开发。这两个工作区都有不同的包,因为我将它们用于不同的目的。在使用辅助工作区时,我在程序中导入包时遇到“找不到包”这样的错误。 “go build”工具正在主工作区中查找这些包,但它们存在于辅助工作空间中。我正在使用GitHub的Atom编辑器。

即使我使用'go get'安装软件包,软件包也会安装在主工作区中。

'go环境变量'如下: -

gkv@GKVInnovations:~$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/gkv/Desktop/goWorkspace:/home/gkv/Desktop/Business/Backend"
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

主工作区的位置: - / home / gkv / Desktop / goWorkspace

辅助工作区的位置: - / home / gkv / Desktop / Business / Backend

请帮我解决此问题并改进我的工作流程!

2 个答案:

答案 0 :(得分:0)

您正在使用Atom,这使得更改GOPATH变得更加困难。

  

Go搜索GOPATH中列出的每个目录以查找源代码,但新包始终会下载到列表中的第一个目录中。

来自https://golang.org/cmd/go/#hdr-GOPATH_environment_variable

  

即使GOPATH可能是目录列表,对于您机器上的所有Go代码使用单个GOPATH通常也是正确和充分的。由于使用“go get”检索的所有包都有一个唯一的URL(因而是磁盘上的唯一路径),因此使用Go工具构建时几乎不需要多个GOPATH。

来自https://github.com/golang/go/wiki/GOPATH#use-a-single-gopath

答案 1 :(得分:0)

我使用具有特定包的客户端,并亲自使用较轻的项目。它在同一台计算机上。 我主要使用go get来获取它们。

默认情况下,export GOPATH=~/path/to/pro中有一个~/.bashrc。 当我想处理我的个人项目时,我export GOPATH=~/path/to/perso

当我统一使用多个桌面视图(工作区)时,我让1个工作区带有一个带有正确GOPATH的终端并修补它