Mac에 Go를 설치 · A Tour of Go를 로컬로 시작할 때까지 걸린 곳

Mac에 Go를 설치 · A Tour of Go를 로컬로 시작할 때까지 걸린 곳

2022-10-06 last update

10 minutes reading 5 Terminal 초보자 Git
쵸코 쵸코 츠마즈이므로, 어떻게 해결했는지 순서를 쫓아 써 둡니다.

Homebrew에서 Go 설치



$ brew install go

설치된 위치 확인



🍺  /usr/local/Cellar/go/1.15: 9,769 files, 494.3MB

Homebrew라면/usr/local/Cellar/직하에 들어갑니다

버전 확인



$ go version
go version go1.15 darwin/amd64

적절한 디렉터리에 파일 만들기



$ mkdir -p ~/go/src/practice

Hello world 해보기



practice 디렉터리에 hello.go 만들기
참고 Golang 공식:Test your installation

hello.go

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

build 해보기



hello.go:3:8: cannot find package "fmt" in any of:
    /Users/miztakahashi/go/src/fmt (from $GOROOT)
    ($GOPATH not set. For more details see: 'go help gopath')
package hello: cannot find package "runtime" in any of:
    /Users/miztakahashi/go/src/runtime (from $GOROOT)
    ($GOPATH not set. For more details see: 'go help gopath')

cannot find package 오류 ...
$ PATH가 다니지 않았습니까?

여러가지 조사했습니다.

go env에서 환경 변수 목록을 확인하면 이유를 알 수 있습니다.



Mizukimbp:hello miztakahashi$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/miztakahashi/Library/Caches/go-build"
GOENV="/Users/miztakahashi/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH=""
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/Users/miztakahashi/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/Users/miztakahashi/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
.
.
.

일반적으로 homebrew로 설치하면,
🍺 /usr/local/Cellar/go/1.15: 9,769 files, 494.3MB
/usr/local/Cellar/바로 아래에 들어가는 것처럼,
다음 경로를 올바른 위치로 다시 작성해야 할 것 같습니다.

GOPATH=""
GOROOT="/Users/miztakahashi/go"
GOTOOLDIR="/Users/miztakahashi/go/pkg/tool/darwin_amd64"

/usr/local/Cellar/ 바로 아래에 go가 들어가도록 환경 변수를 수정해 갑니다.



$ echo 'export GOPATH=$HOME/go' >> ~/.bash_profile
$ echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bash_profile 
$ echo 'export GOROOT=/usr/local/Cellar/go/1.15/libexec' >> ~/.bash_profile
$ echo 'export GOTOOLDIR=/usr/local/Cellar/go/1.15/libexec/pkg/tool/darwin_amd64' >> ~/.bash_profile

$ source ~/.bash_profile // これをやらないと反映されない

반영되어 있는지 $go env에서 확인



$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/miztakahashi/Library/Caches/go-build"
GOENV="/Users/miztakahashi/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/miztakahashi/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/miztakahashi/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/Cellar/go/1.15/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.15/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"


GOPATH
GOROOT
GOTOOLDIR의 패스가,

/usr/local/Cellar/직하에 go가 와 있는 형태가 되면 OK!

제대로 패스를 통과했기 때문에 다시 build 해 보자



$ cd ~/go/src/practice
$ go build 

문제없이 build 할 수있었습니다. 특히 아무것도 결과는 반환되지 않습니다.
올바르게 빌드되었거나 파일 (바이너리 파일)을 실행하여 테스트 해보십시오.

$ ./hello
hello, world

괜찮을 것 같습니다.

다음은 A Tour of Go를 로컬에서 시작시켜 보자.



A Tour of Go는 로컬에서 시작할 수 있는 것 같아서 해보기로 했습니다.
h tps : // 토우 r. 미안해. 오 rg / ぇ l 코메 / 3

go get golang.org/x/tour

Permission denied로 git clone 할 수없는 문제



# cd .; git clone -- https://go.googlesource.com/tour /Users/miztakahashi/go/src/golang.org/x/tour
fatal: could not create work tree dir '/Users/miztakahashi/go/src/golang.org/x/tour': Permission denied
package golang.org/x/tour: exit status 128

분명히 go get golang.org/x/tour
git clone htps : // 기주 b. 코 m / 굿 g / 토 r 와 같은 것 같습니다. (이쪽도 같은 에러가 돌아왔습니다.)

원래 ssh가 다니고 있는지 확인



Mizukimbp:~ miztakahashi$ ssh -T [email protected]
Hi AnnieMizukiTakahashi! You've successfully authenticated, but GitHub does not provide shell access.

다니는 것 같았습니다.

sudo를 붙이고 실행하면 잘 작동했습니다.



sudo git clone https://github.com/golang/tour
sudo go build
sudo cp tour $GOPATH/bin
tour //これでローカルのブラウザが開きます