Как правильно установить Go Language в Ubuntu?

12

Я пытаюсь следовать этим инструкциям, чтобы установить диск, но не могу Goнормально работать.

Я продолжаю получать сообщение об ошибке:

go tool: no such tool "6g"

Когда я пытаюсь использовать go get [url]. Я также получаю эту ошибку при попытке запустить скрипт hello world (чтобы убедиться, что Go был установлен правильно).

Я попытался установить отдельные программы, рекомендуемые в этом посте (golang-go.tools gccgo-go), для исправления этой ошибки, но проблема сохраняется.

Как я могу получить 6gинструмент?

Вот результаты go env:

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/user/go"
GORACE=""
GOROOT="/usr/share/go"
GOTOOLDIR="/usr/share/go/pkg/tool/linux_amd64"
TERM="dumb"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CXX="g++"
CGO_ENABLED="1"
Bprodz
источник
Вы установили GOPATH и GOROOT?
Rinzwind
Да, сначала я получил ошибку относительно GOPATH. Я использовал этот вопрос, чтобы найти решение, которое затем привело меня к следующей ошибке, которую я не могу исправить.
Bprodz
Вам нужна последняя версия Go? Намного проще установить Go из архива sudo apt-get install golang.
Натан Осман
@NathanOsman Я так не думаю, мне просто нужно иметь возможность скомпилировать программу, написанную на Go (в сентябре прошлого года). Я запустил, sudo apt-get install golangно вернул 0, чтобы обновить, заново установить, 62 не обновить, и я все еще не могу использовать go getи go run. Нужно ли заставлять apt-get перезаписывать мою текущую версию Go?
Bprodz

Ответы:

12

Проблема ваша GOROOT. Должно быть установлено /usr/lib/go( не /usr/share/go ).

export GOROOT=/usr/lib/go
friederbluemle
источник
2

Установка

  1. Обновить.

    sudo apt-get update 
    
  2. Установите язык Go.

    sudo apt-get install golang
    
  3. Установите GOPATH в вашу домашнюю папку. После этого вы можете использовать команду echo $GOPATHдля проверки местоположения пути перехода.

    export GOPATH=$HOME/gopath
    
  4. Для GOPATH, это не требуется, чтобы определить это. Но вы все еще можете определить это.

    # Get the go installation root path.
    go env GOROOT
    
    # Set the result of `go env GOROOT` to system variable GOROOT.
    # In this example, the result of `go env GOROOT` is `/usr/lib/go-1.6`
    export GOROOT=/usr/lib/go-1.6
    

Проверка переменных среды Go

  1. Используйте команду, go envи вы получите:

    GOARCH="amd64"
    GOBIN=""
    GOEXE=""
    GOHOSTARCH="amd64"
    GOHOSTOS="linux"
    GOOS="linux"
    GOPATH="/home/casper/gopath"
    GORACE=""
    GOROOT="/usr/lib/go-1.6"
    GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_amd64"
    GO15VENDOREXPERIMENT="1"
    CC="gcc"
    GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
    CXX="g++"
    CGO_ENABLED="1"
    
  2. Теперь вы можете видеть, что:

    а. GOPATHнаходится в /home/casper/gopath.

    б. GOROOTнаходится в /usr/lib/go-1.6.

Ссылки

Casper
источник
golangПакет официально находится в репозитории, зачем мне добавлять PPA, где эти PPA известны своими проблемами?
Анвар