Comment installer correctement Go Language dans Ubuntu?

12

J'essaie de suivre ces instructions pour installer Drive, mais je ne parviens pas Goà travailler correctement.

Je reçois toujours l'erreur:

go tool: no such tool "6g"

Quand j'essaye d'utiliser go get [url]. J'obtiens également cette erreur lorsque j'essaie d'exécuter un script Hello World (pour vérifier que Go s'est installé correctement).

J'ai essayé d'installer les programmes individuels recommandés dans ce post (golang-go.tools gccgo-go) concernant la correction de cette erreur mais le problème persiste.

Comment puis-je obtenir l' 6goutil?

Voici les résultats de 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
la source
avez-vous mis GOPATH et GOROOT?
Rinzwind
Oui, je recevais d'abord une erreur concernant le GOPATH. J'ai utilisé cette question SO pour trouver la solution qui m'a ensuite amené à cette prochaine erreur que je ne peux pas résoudre.
Bprodz
Avez-vous besoin de la dernière version de Go? Il est beaucoup plus facile d'installer Go à partir de l'archive - sudo apt-get install golang.
Nathan Osman
@NathanOsman Je ne pense pas, j'ai juste besoin de pouvoir compiler un programme écrit en Go (septembre dernier). J'ai couru sudo apt-get install golangmais il a renvoyé 0 pour mettre à niveau, nouvellement installé, 62 pour ne pas mettre à niveau et je ne peux toujours pas utiliser go getet go run. Dois-je forcer apt-get à remplacer ma version actuelle de Go?
Bprodz

Réponses:

12

Le problème est le vôtre GOROOT. Il doit être défini sur /usr/lib/go( non /usr/share/go ).

export GOROOT=/usr/lib/go
friederbluemle
la source
2

Installation

  1. Mise à jour.

    sudo apt-get update 
    
  2. Installez la langue Go.

    sudo apt-get install golang
    
  3. Réglez GOPATH dans votre dossier personnel. Après cette action, vous pouvez utiliser la commande echo $GOPATHpour vérifier l'emplacement du chemin d'accès.

    export GOPATH=$HOME/gopath
    
  4. Pour le GOPATH, il n'est pas nécessaire de le définir. Mais vous pouvez toujours le définir.

    # 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
    

Vérification des variables d'environnement Go

  1. Utilisez la commande go envet vous obtiendrez:

    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. Vous pouvez maintenant voir que:

    une. GOPATHest dedans /home/casper/gopath.

    b. GOROOTest dedans /usr/lib/go-1.6.

Les références

Casper
la source
golangpackage est officiellement dans le référentiel, pourquoi devrais-je ajouter un PPA, où ces PPA sont connus pour des problèmes?
Anwar