Как исправить мои переменные 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.
Пожалуйста, прочтите комментарии, а также чат для решения.