Jak poprawnie zainstalować Go Language w Ubuntu?

12

Staram się postępować zgodnie z tymi instrukcjami, aby zainstalować Dysk, ale nie mogę Goprawidłowo działać.

Wciąż pojawia się błąd:

go tool: no such tool "6g"

Kiedy próbuję użyć go get [url]. Ten błąd pojawia się również przy próbie uruchomienia skryptu hello world (w celu sprawdzenia, czy Go został poprawnie zainstalowany).

Próbowałem zainstalować poszczególne programy zalecane w tym poście (golang-go.tools gccgo-go) dotyczące naprawienia tego błędu, ale problem nadal występuje.

Jak mogę zdobyć 6gnarzędzie?

Oto wyniki 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
źródło
ustawiłeś GOPATH i GOROOT?
Rinzwind
Tak, najpierw otrzymałem błąd dotyczący GOPATH. Użyłem tego pytania SO, aby znaleźć rozwiązanie, które doprowadziło mnie do następnego błędu, którego nie mogę naprawić.
Bprodz
Czy potrzebujesz najnowszej wersji Go? O wiele łatwiej jest zainstalować Go z archiwum - sudo apt-get install golang.
Nathan Osman,
@NathanOsman Nie sądzę, po prostu muszę być w stanie skompilować program napisany w Go (we wrześniu ubiegłego roku). Uruchomiłem, sudo apt-get install golangale zwróciło 0 do aktualizacji, nowo instaluję, 62 nie do aktualizacji i nadal nie mogę używać go geti go run. Czy muszę wymusić na apt-get zastąpienie mojej obecnej wersji Go?
Bprodz

Odpowiedzi:

12

Problem jest twój GOROOT. Powinien być ustawiony na /usr/lib/go( nie /usr/share/go ).

export GOROOT=/usr/lib/go
friederbluemle
źródło
2

Instalacja

  1. Aktualizacja.

    sudo apt-get update 
    
  2. Zainstaluj język Go.

    sudo apt-get install golang
    
  3. Ustaw GOPATH na folder domowy. Po tej akcji możesz użyć polecenia, echo $GOPATHaby sprawdzić lokalizację ścieżki przejścia.

    export GOPATH=$HOME/gopath
    
  4. W przypadku GOPATH nie jest wymagane jego zdefiniowanie. Ale nadal możesz to zdefiniować.

    # 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
    

Sprawdzanie zmiennych środowiskowych Go

  1. Użyj polecenia, go enva otrzymasz:

    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. Teraz możesz zobaczyć, że:

    za. GOPATHjest w /home/casper/gopath.

    b. GOROOTjest w /usr/lib/go-1.6.

Bibliografia

Kacper
źródło
golangpakiet jest oficjalnie w repozytorium, dlaczego powinienem dodać umowę PPA, w przypadku gdy te umowy PPA są znane z problemów?
Anwar