Como instalar corretamente o Go Language no Ubuntu?

12

Estou tentando seguir estas instruções para instalar o Drive, mas não consigo Gofuncionar corretamente.

Eu continuo recebendo o erro:

go tool: no such tool "6g"

Quando eu tento usar go get [url]. Também recebo esse erro ao tentar executar um script hello world (para verificar se o Go foi instalado corretamente).

Tentei instalar os programas individuais recomendados nesta publicação (golang-go.tools gccgo-go) em relação à correção desse erro, mas o problema persiste.

Como posso obter a 6gferramenta?

Aqui estão os resultados 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
fonte
você configurou GOPATH e GOROOT?
Rinzwind 7/03
Sim, primeiro eu estava recebendo um erro em relação ao GOPATH. Usei essa pergunta SO para encontrar a solução que me levou a este próximo erro que não consigo corrigir.
Bprodz
Você precisa da versão mais recente do Go? É muito mais fácil instalar o Go a partir do arquivo - sudo apt-get install golang.
Nathan Osman
@ NathanOsman Acho que não, só preciso compilar um programa que foi escrito em Go (em setembro passado). Eu corri, sudo apt-get install golangmas ele retornou 0 para atualizar, instalar recentemente, 62 para não atualizar e ainda não consigo usar o go gete go run. Preciso forçar o apt-get a substituir minha versão atual do Go?
Bprodz

Respostas:

12

O problema é seu GOROOT. Deve ser definido como /usr/lib/go( não /usr/share/go ).

export GOROOT=/usr/lib/go
friederbluemle
fonte
2

Instalação

  1. Atualizar.

    sudo apt-get update 
    
  2. Instale o idioma Go.

    sudo apt-get install golang
    
  3. Defina GOPATH na sua pasta pessoal. Após esta ação, você pode usar o comando echo $GOPATHpara verificar o local do caminho em movimento.

    export GOPATH=$HOME/gopath
    
  4. Para o GOPATH, não é necessário defini-lo. Mas você ainda pode defini-lo.

    # 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
    

Verificando as variáveis ​​de ambiente

  1. Use o comando go enve você obterá:

    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. Agora você pode ver isso:

    uma. GOPATHestá em /home/casper/gopath.

    b. GOROOTestá em /usr/lib/go-1.6.

Referências

Casper
fonte
golangSe o pacote estiver oficialmente no repositório, por que devo adicionar um PPA, onde esses PPAs são conhecidos por problemas?
Anwar