Làm cách nào để cài đặt đúng ngôn ngữ Go trong Ubuntu?


12

Tôi đang thử làm theo các hướng dẫn này để cài đặt Drive nhưng tôi không thể Gohoạt động bình thường.

Tôi tiếp tục nhận được lỗi:

go tool: no such tool "6g"

Khi tôi cố gắng sử dụng go get [url]. Tôi cũng gặp lỗi này khi cố chạy tập lệnh hello world (để kiểm tra xem Go đã được cài đặt đúng chưa).

Tôi đã thử cài đặt các chương trình riêng lẻ được đề xuất trong bài đăng này (golang-go.tools gccgo-go) về việc sửa lỗi này nhưng sự cố vẫn còn.

Làm thế nào tôi có thể có được 6gcông cụ?

Đây là kết quả của 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"

bạn đã thiết lập GOPATH và GOROOT chưa?
Rinzwind

Vâng, đầu tiên tôi đã nhận được một lỗi liên quan đến GOPATH. Tôi đã sử dụng câu hỏi SO này để tìm giải pháp và sau đó đưa tôi đến lỗi tiếp theo mà tôi không thể sửa.
Bprodz 7/03/2015

Bạn có cần phiên bản mới nhất của Go không? Dễ dàng hơn nhiều để cài đặt Đi từ kho lưu trữ - sudo apt-get install golang.
Nathan Osman

@NathanOsman Tôi không nghĩ vậy, tôi chỉ cần có thể biên dịch một chương trình được viết bằng Go (tháng 9 năm ngoái). Tôi đã chạy sudo apt-get install golangnhưng nó trả về 0 để nâng cấp, mới cài đặt, 62 không nâng cấp và tôi vẫn không thể sử dụng go getgo run. Tôi có cần buộc apt-get ghi đè lên phiên bản Go hiện tại của mình không?
Bprodz 7/03/2015

Câu trả lời:


12

Vấn đề là của bạn GOROOT. Nó nên được đặt thành /usr/lib/go( không /usr/share/go ).

export GOROOT=/usr/lib/go

2

Cài đặt

  1. Cập nhật.

    sudo apt-get update 
    
  2. Cài đặt ngôn ngữ Go.

    sudo apt-get install golang
    
  3. Đặt GOPATH vào thư mục nhà của bạn. Sau hành động này, bạn có thể sử dụng lệnh echo $GOPATHđể kiểm tra vị trí đường dẫn đi.

    export GOPATH=$HOME/gopath
    
  4. Đối với GOPATH, không bắt buộc phải xác định nó. Nhưng bạn vẫn có thể định nghĩa nó.

    # 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
    

Kiểm tra biến môi trường

  1. Sử dụng lệnh go envvà bạn sẽ nhận được:

    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. Bây giờ bạn có thể thấy rằng:

    a. GOPATHlà trong /home/casper/gopath.

    b. GOROOTlà trong /usr/lib/go-1.6.

Người giới thiệu


golanggói chính thức trong kho lưu trữ, tại sao tôi nên thêm PPA, nơi các PPA này được biết đến cho các vấn đề?
Anwar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.