우분투에서 Go Language를 올바르게 설치하는 방법은 무엇입니까?


12

이 지침 에 따라 드라이브를 설치 하려고하는데 Go제대로 작동하지 않습니다 .

계속 오류가 발생합니다.

go tool: no such tool "6g"

내가 사용하려고 할 때 go get [url]. 또한 Hello World 스크립트를 실행하려고 할 때 (Go가 올바르게 설치되었는지 확인)이 오류가 발생합니다.

이 오류 수정과 관련 하여이 게시물에서 권장 하는 개별 프로그램 (golang-go.tools gccgo-go)을 설치하려고 했지만 문제가 지속됩니다.

6g도구를 어떻게 구할 수 있습니까?

결과는 다음과 같습니다 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"

GOPATH와 GOROOT를 설정 했습니까?
— Rinzwind

예, 먼저 GOPATH와 관련하여 오류가 발생했습니다. 이 SO 질문을 사용 하여 솔루션을 찾은 다음 수정할 수없는 다음 오류가 발생했습니다.
— Bprodz

최신 버전의 Go가 필요하십니까? 아카이브에서 Go를 설치하는 것이 훨씬 쉽습니다 sudo apt-get install golang.
— Nathan Osman

@NathanOsman 그렇게 생각하지 않습니다 .Go (작년 9 월)로 작성된 프로그램을 컴파일 할 수 있어야합니다. 나는 실행 sudo apt-get install golang했지만 업그레이드, 새로 설치, 업그레이드하지 않기 위해 0을 반환했지만 여전히 go getand 를 사용할 수 없습니다 go run. apt-get이 현재 버전의 Go를 덮어 쓰도록해야합니까?
— Bprodz

답변:


12

문제는 당신 GOROOT입니다. 로 설정해야합니다 /usr/lib/go( not /usr/share/go ).

export GOROOT=/usr/lib/go

2

설치

  1. 최신 정보.

    sudo apt-get update 
    
  2. Go 언어를 설치하십시오.

    sudo apt-get install golang
    
  3. GOPATH를 홈 폴더로 설정하십시오. 이 조치 후에 명령 echo $GOPATH을 사용 하여 이동 경로 위치를 확인할 수 있습니다 .

    export GOPATH=$HOME/gopath
    
  4. GOPATH의 경우이를 정의 할 필요가 없습니다. 그러나 여전히 정의 할 수 있습니다.

    # 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
    

이동 환경 변수 확인

  1. 명령을 사용 go env하면 다음을 얻을 수 있습니다.

    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. 이제 당신은 그것을 볼 수 있습니다 :

    ㅏ. GOPATH에 /home/casper/gopath있습니다.

    비. GOROOT에 /usr/lib/go-1.6있습니다.

참고 문헌


golangpackage가 공식적으로 저장소에 있는데 왜 PPA가 문제로 알려진 PPA를 추가해야합니까?
— Anwar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.