Mac で Go の環境構築
概要
go の開発環境を設定し、go のプロジェクト作成までやったのでメモ。
goenv のインストール
goenv は、go 言語のバージョンを管理するもの。
go 言語版の rbenv や nodebrew のようなもの。
$ brew install goenv $ echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.bash_profile $ echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(goenv init -)"' >> ~/.bash_profile $ source .bash_profile
goenv コマンドを確認
$ goenv --help
インストールできるバージョンを確認
$ goenv install -l
go をインストール
$ goenv install 1.11.4
グローバルで使用するバージョンを指定
$ goenv global 1.11.4
ローカル(特定のディレクトリ)で使用するバージョンを指定
$ goenv local 1.11.4
go のバージョン確認
$ go version
go プロジェクトを作る
$ mkdir gotest $ cd gotest/ $ goenv local 1.11.4 -> .go-version ファイルができる
go 1.11 で使えるようになった modules を使う
go 言語のパッケージ管理ツール。
go 言語版の gemfile や package.json のようなもの。
go 1.12 からデフォルトで使えるようになりそうだが、go 1.11 では export GO111MODULE=on
とすることで使用できる。
direnv を使っているなら .envrc
書いておけばいいと思う。
GOPATH も書いておけば、プロジェクトごとに管理できていいのかも。
export GO111MODULE=on export GOPATH=$PWD/go
パッケージインストール先の GOPATH のフォルダを作成
$ mkdir go
go.mod ファイルを作成
$ go mod init gotest 本来はこんな感じになるっぽい $ go mod init github.com/<アカウント名>/<リポジトリ名>
go のサンプルのコード
$ cat <<EOF > hello.go package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) } EOF
ビルド&実行
$ go build $ ./gotest こんにちは世界。
できた。
go.mod にパッケージ追加されてる。
$ cat go.mod module gotest require rsc.io/quote v1.5.2
go.sum というファイルもできている。
gemfile.lock や package.lock.json 的なものっぽい。