Mac OSでgoenvからgo言語をインストールする

Category:
Last Updated: 2022/01/03 08:58:29

最近になってGo言語を学び始めたので、goenvgoの環境構築についてまとめる。

余談だが、私はpythonではpyenvrubyではrbenvnodejsではnvmを使っている。
ライブラリによっては依存性の解決のために特定のバージョンが必要になることが多々あるので、基本的に言語ごとのバージョン管理システムが存在する場合は使うことをお勧めしたい。

# goenvのインストール

# Homebrew (アンインストール)

まず、homebrewgoenvをインストールしたが、1.23.3と古いバージョンが入ってしまった。

Github (opens new window)に最新版へのアップグレード方法が記載されているのだが、この内容だと結局gitリポジトリから最新版を持ってくることになるので、homebrew版はアンインストールしてgitリポジトリから取得し直すことにする。

$ brew upgrade 
$ brew install goenv
$ goenv -v
goenv 1.23.3
$ eval "$(goenv init -)"
$ echo 'eval "$(goenv init -)"' >> ~/.bash_profile 
1
2
3
4
5
6

# Git Repos

基本的にはGithubの説明通りにすればよい。
ほぼgit clone.bash_profileへの追記だけなので簡単だと思う。

# 1. Check out goenv where you want it installed. 
$ git clone https://github.com/syndbg/goenv.git ~/.goenv

# 2. Define environment variable 
$ echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.bash_profile
$ echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.bash_profile

# 3. Add goenv init to your shell to enable shims
$ echo 'eval "$(goenv init -)"' >> ~/.bash_profile

# 4. If you want goenv to manage GOPATH and GOROOT (recommended), add GOPATH and GOROOT to your shell after eval "$(goenv init -)".
$ echo 'export PATH="$GOROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.bash_profile

# 5. Restart your shell so the path changes take effect. You can now begin using goenv.
$ exec $SHELL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

goenv -v で最新版が入っていることを確認する。

$ goenv -v
goenv 2.0.0beta11
1
2

# goのインストール

まず、goenv install -l でインストールできるバージョンの確認。

$ goenv install -l
Available versions:
  1.2.2
  1.3.0
  1.3.1
  1.3.2
  1.3.3
  1.4.0
  1.4.1
  1.4.2
  1.4.3
  1.5.0
  ....1.16.10
  1.17.0
  1.17beta1
  1.17rc1
  1.17rc2
  1.17.1
  1.17.2
  1.17.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

この記事を書いている時点では 1.17.3 が最新版なので、1.17.3をインストールする場合は下記のように行う。

$ goenv install 1.17.3
$ goenv global 1.17.3 
$ go version
go version go1.17.3 darwin/arm64
1
2
3
4

Category:
Last Updated: 2022/01/03 08:58:29
Copyright © Web Ninja All Rights Reserved.