Перейти: не удается найти ошибку "fmt" пакета

Я пытаюсь выполнить простое приложение Hello, World в go:

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello World!")
}

Но когда я его создаю и запускаю, я получаю следующую ошибку:

main.go:5:2: cannot find package "fmt" in any of:
    /home/user/go/src/pkg/fmt (from $GOROOT)
    /home/user/gocode/src/fmt (from $GOPATH)
package test_program
    imports runtime: cannot find package "runtime" in any of:
    /home/user/go/src/pkg/runtime (from $GOROOT)
    /home/user/gocode/src/runtime (from $GOPATH)

Вот вывод go env:

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/user/gocode"
GORACE=""
GOROOT="/home/user/go"
GOTOOLDIR="/home/user/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"

Ответы

Ответ 1

Unset GOROOT - инструменты go знают, где они должны быть, и вам редко приходится устанавливать его.

Вы установили его в /home/user/go, и если вы не построите его, это вряд ли будет подходящим местом для поиска пакета fmt.

Ответ 2

Не используйте apt-get для установки , просто загрузите двоичные файлы и извлеките их в свой домашний (или любой) каталог.

Чтобы получить go tool в вашем терминале, вы должны добавить строку export PATH=$PATH:$GOROOT/bin в свой ~/.bashrc.