如何将我的 GOROOT 和 GOPATH 变量修改为 运行 go?
How do I fix my GOROOT and GOPATH variables to run go?
操作系统:Ubuntu14.04
.bashrc 中的行(尝试了以下两项)
# GoPath (without goroot)
export GOPATH=$HOME/gowork
...
# GoPath (with goroot)
export GOROOT=/usr/local/go
export GOPATH=$HOME/gowork
注意:我尝试设置上述环境变量,首先在 .profile 中,然后在 .bashrc 中,按照不同人的建议以不同的方式设置。
尝试运行以下代码
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
终端中的错误消息
go run helloworld.go
helloworld.go:3:8: cannot find package "fmt" in any of:
/usr/local/go/src/pkg/fmt (from $GOROOT)
/home/arif/gowork/src/fmt (from $GOPATH)
package runtime: cannot find package "runtime" in any of:
/usr/local/go/src/pkg/runtime (from $GOROOT)
/home/arif/gowork/src/runtime (from $GOPATH)
编辑
去环境输出
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/arif/gowork"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
go版本输出
go version go1.3.3 linux/amd64
一个提示
我记得我安装的 tar 是 go1.6.linux-amd64.tar.gz,这意味着应该显示 go 版本 1.6,但我的终端输出的是 1.3.3。
您通常不必设置 $GOROOT
,除非您知道为什么要设置它。
这假设 'normal' 安装了 Go。如果您移动了 go 二进制文件,或者删除了 pkg 或 src 文件夹,您的情况可能会有所不同。
此外,请确保在您打算使用的版本之前,在您的 $PATH 中找不到旧版本的 go。
在这种情况下,@Bangash 必须删除旧的 /usr/bin/go 并将 /usr/local/go/bin 添加到他的 PATH 环境变量中。
Usually people use $GOROOT 在多个版本的 go 之间切换时。
请阅读评论并讨论解决方案。
操作系统:Ubuntu14.04
.bashrc 中的行(尝试了以下两项)
# GoPath (without goroot)
export GOPATH=$HOME/gowork
...
# GoPath (with goroot)
export GOROOT=/usr/local/go
export GOPATH=$HOME/gowork
注意:我尝试设置上述环境变量,首先在 .profile 中,然后在 .bashrc 中,按照不同人的建议以不同的方式设置。
尝试运行以下代码
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
终端中的错误消息
go run helloworld.go
helloworld.go:3:8: cannot find package "fmt" in any of:
/usr/local/go/src/pkg/fmt (from $GOROOT)
/home/arif/gowork/src/fmt (from $GOPATH)
package runtime: cannot find package "runtime" in any of:
/usr/local/go/src/pkg/runtime (from $GOROOT)
/home/arif/gowork/src/runtime (from $GOPATH)
编辑
去环境输出
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/arif/gowork"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
go版本输出
go version go1.3.3 linux/amd64
一个提示
我记得我安装的 tar 是 go1.6.linux-amd64.tar.gz,这意味着应该显示 go 版本 1.6,但我的终端输出的是 1.3.3。
您通常不必设置 $GOROOT
,除非您知道为什么要设置它。
这假设 'normal' 安装了 Go。如果您移动了 go 二进制文件,或者删除了 pkg 或 src 文件夹,您的情况可能会有所不同。
此外,请确保在您打算使用的版本之前,在您的 $PATH 中找不到旧版本的 go。
在这种情况下,@Bangash 必须删除旧的 /usr/bin/go 并将 /usr/local/go/bin 添加到他的 PATH 环境变量中。
Usually people use $GOROOT 在多个版本的 go 之间切换时。
请阅读评论并讨论解决方案。