やること
Go言語のバージョン管理ツール goenv を導入する
導入理由
プロジェクトによってGo言語のバージョンが異なったり、バージョンアップ対応する場合があると思うので、バージョン管理を行えるように導入する
環境
- OS: Ubuntu (18.04 LTS)
- Git
- Shell: bash or zsh
Ubuntu向けに記載しますが、 apt
とか使わないのでMacでも手順同じはずです
→調べたらMacは brew install goenv
だけでもインストールできるらしい。
導入手順
ホームディレクトリにgoenvをcloneする
git clone https://github.com/syndbg/goenv.git ~/.goenv
goenvを読み込むためのPATHを設定する
# bashの場合
echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.bashrc
echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.bashrc
# zshの場合
echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.zshrc
echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.zshrc
goenv init
の設定を追加する
GOPATH
や GOROOT
の読み込み用に必要らしい
# bashの場合
echo 'eval "$(goenv init -)"' >> ~/.bashrc
# zshの場合
echo 'eval "$(goenv init -)"' >> ~/.zshrc
goenvを使用して GOPATH
や GOROOT
を管理する場合、上記の記述の後に以下の設定を入れるらしい。
# bashの場合
echo 'export PATH="$GOROOT/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.bashrc
# zshの場合
echo 'export PATH="$GOROOT/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.zshrc
上記の設定を読み込むためにshellを再起動
exec $SHELL
goenvが入ったことを確認
$ goenv -v
goenv 2.0.0beta11
ここで上手く行かない場合はbashrc(zshrc)の設定ミスっている可能性が高いので見直してください。
Basic Usage
指定したバージョンのGoをインストール
goenv install <version>
# 記事作成時の最新バージョンをインストールしてみる
$ goenv install 1.17.7
Downloading go1.17.7.linux-amd64.tar.gz...
-> https://go.dev/dl/go1.17.7.linux-amd64.tar.gz
##################################################################################################################################################################################################### 100.0%##################################################################################################################################################################################################### 100.0%
Installing Go Linux 64bit 1.17.7...
Installed Go Linux 64bit 1.17.7 to /home/iwakura/.goenv/versions/1.17.7
# 確認
$ goenv versions
1.17.7
↑上記でしれっと使用しましたが、インストール済みのバージョン一覧は goenv versions
で確認可能
使用しているPC全体のGoのバージョンを指定
goenv global <version>
$ goenv global 1.17.7
# 確認
$ go version
go version go1.17.7 linux/amd64
カレントディレクトリだけ指定したバージョンのGoを使用
goenv local <version>
# 確認用にディレクトリ作成&移動
$ mkdir goenv-test
$ cd goenv-test
# 別バージョンインストール
$ goenv install 1.12.0
# 切り替え前
$ go version
go version go1.17.7 linux/amd64
# 切り替え実行
$ goenv local 1.12.0
# 確認
$ go version
go version go1.12 linux/amd64
# goenv localのバージョン管理をする場合、以下のファイルが生成されます
$ ls -a
. .. .go-version
$ cat .go-version
1.12.0
最後に
以上、 goenv
のインストールと使用方法についてでした!
ぶっちゃけ、こちらの内容を翻訳した程度なので細かい点は公式参照しましょう!