1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MacへGoをインストール・A Tour of Goをローカルで起動するまでにつまづいた所

Last updated at Posted at 2020-08-23

ちょこちょこつまづいたので、どう解決したか順を追って書いておきます。

HomebrewでGoをインストール


$ brew install go

インストールされた場所を確認する


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

Homebrewだと/usr/local/Cellar/直下に入っていきます

versionを確認する


$ go version
go version go1.15 darwin/amd64

適当なディリクトリにファイルを作成


$ mkdir -p ~/go/src/practice

Hello woldしてみる

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/の直下に入るようなので、
以下のpathを正しい場所に書き換えてやる必要がありそうです。

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できました。特に何も結果は返ってきません
正しくbuildできているかファイル(バイナリファイル)を実行してテストしてみます


$ ./hello
hello, world

大丈夫そうです。

次はA Tour of Goをローカルで起動させてみる

A Tour of Goはローカルで起動できるらしいのでやってみることにしました。
https://tour.golang.org/welcome/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 https://github.com/golang/tour と同じのようです。(こちらも同じエラーが返ってきました。)

そもそもsshは通っているか確認


Mizukimbp:~ miztakahashi$ ssh -T git@github.com
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 //これでローカルのブラウザが開きます

:laughing:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?