[go] GOPATH 및 GOROOT의 값은 무엇입니까?

다음 과 같이 doozer 를 설치하려고합니다 .

$ goinstall github.com/ha/doozer

이 오류가 발생합니다.

goinstall: os: go/build: package could not be found locally
goinstall: fmt: go/build: package could not be found locally
goinstall: io: go/build: package could not be found locally
goinstall: reflect: go/build: package could not be found locally
goinstall: math: go/build: package could not be found locally
goinstall: rand: go/build: package could not be found locally
goinstall: url: go/build: package could not be found locally
goinstall: net: go/build: package could not be found locally
goinstall: sync: go/build: package could not be found locally
goinstall: runtime: go/build: package could not be found locally
goinstall: strings: go/build: package could not be found locally
goinstall: sort: go/build: package could not be found locally
goinstall: strconv: go/build: package could not be found locally
goinstall: bytes: go/build: package could not be found locally
goinstall: log: go/build: package could not be found locally
goinstall: encoding/binary: go/build: package could not be found locally


답변

GOPATH설명서 에서cmd/go 설명 합니다 .

GOPATH환경 변수를 나열 장소로 이동 코드를 볼 수 있습니다. Unix에서 값은 콜론으로 구분 된 문자열입니다. Windows에서 값은 세미콜론으로 구분 된 문자열입니다. 계획 9에서 값은 목록입니다.

GOPATH 표준 Go 트리 외부에서 패키지를 가져오고 빌드하고 설치하도록 설정해야합니다.

GOROOT설치 지침에 설명되어 있습니다 .

Go 바이너리 배포판은 배포 가 Windows /usr/local/go(또는 c:\GoWindows)에 설치 될 것이라고 가정
하지만 Go 도구를 다른 위치에 설치할 수 있습니다. 이 경우 GOROOT환경 변수가 설치된 디렉토리를 가리 키도록 설정해야합니다
.

예를 들어, 홈 디렉토리로 이동을 설치 한 경우 다음 명령을 추가해야합니다 $HOME/.profile.

export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin

참고 : GOROOT 사용자 정의 위치에 설치할 때만 설정해야합니다.

( Chris Bunch의 답변 버전이 업데이트되었습니다 .)


답변

다음은 간단한 설정입니다.

directory for go related things: ~/programming/go
directory for go compiler/tools: ~/programming/go/go-1.4
directory for go software      : ~/programming/go/packages

GOROOT, GOPATH, PATH는 다음과 같이 설정됩니다.

export GOROOT=/home/user/programming/go/go-1.4
export GOPATH=/home/user/programming/go/packages
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

간단히 말해 :

GOROOT는 이동 설치에서 제공되는 컴파일러 / 도구 용입니다.
GOPATH는 자신의 go 프로젝트 / 타사 라이브러리 ( “go get”으로 다운로드)를위한 것입니다.


답변

먼저 실행하십시오 go env.
go가 설치되어 있지 않다면 homebrew패키지를 통해 또는 다른 방법으로 설치할 수 있습니다 .
출력이 표시되면 Go설치되어있는 것입니다.
설정되어 있고 설정되지 않은 모든 환경을 보여줍니다.

비어있는 경우 GOROOT:

  1. 실행 which go(내 컴퓨터에서 : /usr/local/go/bin/go)
  2. 다음과 같이 내보내십시오 export GOROOT=/usr/local/go

비어있는 경우 GOPATH:

  1. 필자의 경우 go 프로젝트를 위해 컴퓨터의 아무 곳에 나 디렉토리를 만듭니다. ~/GO_PROJECTS
  2. 그때 export GOPATH=~/GO_PROJECTS

답변

GOPATH여기 에 논의 됩니다 :

GOPATH환경 변수

GOPATH Go 코드, 패키지 객체 및 실행 파일을 찾을 수있는 경로를 콜론으로 구분 된 경로 목록으로 설정할 수 있습니다.

A가 설정 GOPATH빌드로 goinstall를 사용하여 이동 트리의 외부에 자신의 코드와 외부 라이브러리를 설치 (그리고 메이크를 작성 피하기 위해) 할 수 있습니다.

그리고 여기GOROOT 에 논의 됩니다 :

$GOROOT바둑 나무의 뿌리 $HOME/go. 기본값 all.bash은 실행 되는 디렉토리의 상위입니다 . 을 설정하지 않으면 $GOROOT, 기존 makefile을 사용하여 Go 프로그램을 개발할 때 make 또는 gmake 대신 gomake를 실행해야합니다.


답변

나는 go help gopath문서를 읽고 여전히 혼란 스러웠지만 다른 go doc 페이지 에서이 작은 덩어리를 발견했습니다.

GOPATH 환경 변수는 작업 공간의 위치를 ​​지정합니다. Go 코드를 개발할 때 설정해야하는 유일한 환경 변수 일 수 있습니다.

http://golang.org/doc/code.html#GOPATH


답변

GOPATH는해야 하지 이동 설치를 가리키는 것이 아니라 작업 공간에 (참조 https://golang.org/doc/code.html#GOPATH을 ). go get 또는 go install로 일부 패키지를 설치할 때마다 GOPATH에 들어갑니다. 그렇기 때문에 인터넷에서 임의의 패키지가 공식 설치에 버려지 는 것을 원하지 않는다는 경고 가 표시됩니다.


답변

go 1.8 (2017 년 2 분기)부터 GOPATH가 기본적으로 $ HOME / go로 설정됩니다.

문제 17262 및 Rob Pike의 의견을 참조하십시오 .

$HOME/go될 것입니다.
단 하나의 최선의 대답은 없지만 짧고 달콤합니다. $HOME/go이미 존재하는 경우 해당 이름을 선택하면 문제가 될 수 GOPATH있습니다. 이미 설치되어 있고 이해하는 전문가에게만 도움이됩니다 .