Как исправить мои переменные GOROOT и GOPATH для запуска go?

Операционная система: Ubuntu 14.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)

редактировать

пойти вывод env

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 version go1.3.3 linux/amd64

Намек

Я помню, что tar, с которого я установил, был go1.6.linux-amd64.tar.gz, что означает, что должна быть показана версия 1.6 go, но мой терминал выводит 1.3.3.

1 ответ

Решение

Как правило, вы никогда не должны устанавливать $GOROOT если вы не знаете, почему вы это устанавливаете.

Это предполагает "нормальную" установку Go. Если вы переместили бинарный файл go или удалили папки pkg или src, ваш пробег может отличаться.

Кроме того, убедитесь, что более старая версия go не найдена в вашем $PATH до версии, которую вы намереваетесь использовать.

В этом случае @Bangash пришлось удалить старый / usr / bin / go и добавить / usr / local / go / bin в его переменную окружения PATH.

Обычно люди используют $GOROOT при переключении между несколькими версиями go.

Пожалуйста, прочтите комментарии, а также чат для решения.

Другие вопросы по тегам