¿Cómo instalar correctamente Go Language en Ubuntu?

12

Estoy intentando seguir estas instrucciones para instalar Drive, pero no puedo Gotrabajar correctamente.

Sigo recibiendo el error:

go tool: no such tool "6g"

Cuando trato de usar go get [url]. También recibo este error cuando intento ejecutar un script de hello world (para verificar que Go se haya instalado correctamente).

Intenté instalar los programas individuales recomendados en esta publicación (golang-go.tools gccgo-go) para solucionar este error, pero el problema persiste.

¿Cómo puedo obtener la 6gherramienta?

Aquí están los 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
fuente
estableciste GOPATH y GOROOT?
Rinzwind
Sí, primero recibí un error con respecto a GOPATH. Utilicé esta pregunta SO para encontrar la solución que luego me llevó al siguiente error que no puedo solucionar.
Bprodz
¿Necesitas la última versión de Go? Es mucho más fácil instalar Go desde el archivo - sudo apt-get install golang.
Nathan Osman
@NathanOsman No lo creo, solo necesito poder compilar un programa que fue escrito en Go (el pasado septiembre). Ejecuté sudo apt-get install golangpero devolvió 0 para actualizar, instalar nuevamente, 62 no actualizar y todavía no puedo usar go gety go run. ¿Debo obligar a apt-get a sobrescribir mi versión actual de Go?
Bprodz

Respuestas:

12

El problema es tu GOROOT. Debe establecerse en /usr/lib/go( no /usr/share/go ).

export GOROOT=/usr/lib/go
Friederbluemle
fuente
2

Instalación

  1. Actualizar.

    sudo apt-get update 
    
  2. Instalar el idioma Go.

    sudo apt-get install golang
    
  3. Establezca GOPATH en su carpeta de inicio. Después de esta acción, puede usar el comando echo $GOPATHpara verificar la ubicación de la ruta de acceso.

    export GOPATH=$HOME/gopath
    
  4. Para el GOPATH, no es necesario definirlo. Pero aún puedes definirlo.

    # 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
    

Comprobación de las variables de entorno de Go

  1. Use el comando go envy obtendrá:

    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. Ahora puedes ver eso:

    a. GOPATHestá en /home/casper/gopath.

    si. GOROOTestá en /usr/lib/go-1.6.

Referencias

Casper
fuente
golangel paquete está oficialmente en el repositorio, ¿por qué debería agregar un PPA, donde estos PPA son conocidos por problemas?
Anwar