好的,所以我下载了Go 1.1,并将其放入$ HOME / Documents / go。
然后,我将我修改.bashrc为:
.bashrc
export GOPATH=$HOME/Documents/go export GOROOT=$GOPATH export GOARCH=amd64 export GOOS=linux export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN
比起我,我已经.bashrc尝试了:
jan@janpc:~$ go version go version go1.1 linux/amd64
但是我无法编译或安装任何依赖项。例如。我尝试运行我的小测试程序:
jan@janpc:~/Documents/go/src/github.com/jan/scrypt$ go run scrypt.go warning: GOPATH set to GOROOT (/home/jan/Documents/go) has no effect scrypt.go:9:3: cannot find package "github.com/dchest/scrypt" in any of: /home/jan/Documents/go/src/pkg/github.com/dchest/scrypt (from $GOROOT) ($GOPATH not set) jan@janpc:~/Documents/go/src/github.com/jan/scrypt$
当我尝试安装依赖项时:
jan@janpc:~/Documents/go/src/github.com/jan/scrypt$ go get "github.com/dchest/scrypt" warning: GOPATH set to GOROOT (/home/jan/Documents/go) has no effect package github.com/dchest/scrypt: cannot download, $GOPATH must not be set to $GOROOT. For more details see: go help gopath
它可以在Mac上编译并正常工作。如果我尝试删除配置$GOROOT或$GOPATH什么都行不通,并且我不知道将它们设置为什么,除了Go的路径,我无法弄清楚我的配置有什么问题。
$GOROOT
$GOPATH
编辑:我的Mac上没有设置$ GOROOT。但是,如果我$GOROOT在ubuntu上删除,则在尝试编译时会出现诸如此类的错误。
cannot find package "fmt" in any of: /usr/local/go/src/pkg/fmt (from $GOROOT) /home/jan/Documents/go/src/fmt (from $GOPATH)
您设置的环境变量
$ export GOROOT=$GOPATH
是一个错误。无需或不建议在任何地方进行此类设置。实际上,它破坏了Go构建系统所看到的环境。
删除该设置,重新创建环境(. bashrc)或打开一个新的终端,它应该可以工作(如果不存在其他问题)。
. bashrc
此外,如果您不进行交叉编译,建议您也删除以下内容:
export GOARCH=amd64 export GOOS=linux
简而言之,正确导出的GOPATH是 唯一 真正需要的环境变量。这里还有一些提示。
编辑:好的,所以我已经下载了二进制发行版(go1.1.linux-amd64.tar.gz)。从README引用:
二进制发行说明 如果刚刚解压了二进制Go发行版,则需要将环境变量$ GOROOT设置为go目录的完整路径(包含此README的路径)。如果将变量解压缩到/ usr / local / go中,或者通过运行all.bash从源进行重建,则可以忽略该变量(请参阅doc / install.html)。您还应该将Go二进制目录$ GOROOT / bin添加到外壳程序的路径中。 例如,如果将tar文件提取到$ HOME / go中,则可以在.profile中放入以下内容:
二进制发行说明
如果刚刚解压了二进制Go发行版,则需要将环境变量$ GOROOT设置为go目录的完整路径(包含此README的路径)。如果将变量解压缩到/ usr / local / go中,或者通过运行all.bash从源进行重建,则可以忽略该变量(请参阅doc / install.html)。您还应该将Go二进制目录$ GOROOT / bin添加到外壳程序的路径中。
例如,如果将tar文件提取到$ HOME / go中,则可以在.profile中放入以下内容:
export GOROOT=$HOME/go export PATH=$PATH:$GOROOT/bin
有关更多详细信息,请参见doc / install.html。
由此可见,您一定没有正确遵循上述说明。解决该问题,希望它对您有用。