Bagaimana cara menginstal Go Language dengan benar di Ubuntu?

12

Saya mencoba mengikuti petunjuk ini untuk menginstal Drive tetapi saya tidak Godapat bekerja dengan benar.

Saya terus mendapatkan kesalahan:

go tool: no such tool "6g"

Ketika saya mencoba menggunakannya go get [url]. Saya juga mendapatkan kesalahan ini ketika mencoba menjalankan skrip hello world (untuk memeriksa bahwa Go telah diinstal dengan benar).

Saya sudah mencoba menginstal program individual yang direkomendasikan dalam posting ini (golang-go.tools gccgo-go) mengenai memperbaiki kesalahan ini tetapi masalahnya tetap ada.

Bagaimana saya bisa mendapatkan 6galat ini?

Berikut adalah hasil dari 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
sumber
apakah Anda mengatur GOPATH dan GOROOT?
Rinzwind
Ya, pertama saya mendapatkan kesalahan terkait GOPATH. Saya menggunakan pertanyaan SO ini untuk menemukan solusi yang kemudian membawa saya ke kesalahan berikutnya yang tidak dapat saya perbaiki.
Bprodz
Apakah Anda memerlukan versi terbaru dari Go? Jauh lebih mudah untuk menginstal Go dari arsip - sudo apt-get install golang.
Nathan Osman
@NathanOsman Saya tidak berpikir begitu, saya hanya perlu dapat mengkompilasi program yang ditulis dalam Go (September lalu). Saya berlari sudo apt-get install golangtetapi mengembalikan 0 untuk meningkatkan, baru menginstal, 62 tidak untuk meng-upgrade dan saya masih tidak dapat menggunakan go getdan go run. Apakah saya perlu memaksa apt-get untuk menimpa versi Go saya saat ini?
Bprodz

Jawaban:

12

Masalahnya adalah Anda GOROOT. Ini harus diatur ke /usr/lib/go( bukan /usr/share/go ).

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

Instalasi

  1. Memperbarui.

    sudo apt-get update 
    
  2. Instal bahasa Go.

    sudo apt-get install golang
    
  3. Set GOPATH ke folder rumah Anda. Setelah tindakan ini, Anda dapat menggunakan perintah echo $GOPATHuntuk memeriksa lokasi jalur masuk.

    export GOPATH=$HOME/gopath
    
  4. Untuk GOPATH, tidak diperlukan untuk mendefinisikannya. Tetapi Anda masih bisa mendefinisikannya.

    # 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
    

Memeriksa Variabel Lingkungan Go

  1. Gunakan perintah go envdan Anda akan mendapatkan:

    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. Sekarang Anda bisa melihat itu:

    Sebuah. GOPATHadalah di /home/casper/gopath.

    b. GOROOTadalah di /usr/lib/go-1.6.

Referensi

Casper
sumber
golangpaket secara resmi dalam repositori, mengapa saya harus menambahkan PPA, di mana PPA ini dikenal memiliki masalah?
Anwar