Goのバージョン管理:miseとgoenvの使い方

スポンサーリンク

Goのバージョン管理:miseとgoenvの使い方

はじめに

バージョン管理ツールを使えば、プロジェクトごとにGoのバージョンを自動で切り替えられます。この記事ではよく使われる goenv と、最近人気の mise の使い方を解説します。

バージョン確認コマンドは「Goのバージョン確認方法まとめ」を参照してください。


mise(推奨)

miseはRust製のバージョン管理ツールで、Go・Node.js・Python・Rubyなど複数言語を1つのツールで管理できます。

インストール

# macOS(Homebrew)
brew install mise

# シェルに設定を追加
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
source ~/.zshrc

Goをインストールする

# インストール可能なバージョンを確認
mise ls-remote go

# 特定バージョンをインストール
mise install go@1.23

# 最新バージョンをインストール
mise install go@latest

バージョンを切り替える

# グローバル(デフォルト)に設定
mise use --global go@1.23

# プロジェクトごとに設定(.mise.tomlを作成)
mise use go@1.22

プロジェクトディレクトリに .mise.toml が作成されます。

[tools]
go = "1.22"

このファイルをgitで管理することで、チームで同じバージョンを使えます。

バージョンを確認する

go version
# go version go1.23.2 darwin/arm64

mise list go
# go  1.23.2  ~/dev/myproject/.mise.toml

goenv

goenvはGo専用のバージョン管理ツールです。rbenv・pyenvと同じ仕組みで動作します。

インストール

# goenvをインストール
git clone https://github.com/go-nv/goenv.git ~/.goenv

# シェルに設定を追加
echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.zshrc
echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(goenv init -)"' >> ~/.zshrc
source ~/.zshrc

Goをインストールする

# インストール可能なバージョンを確認
goenv install --list

# 特定バージョンをインストール
goenv install 1.23.2

# インストール済みバージョンを確認
goenv versions

バージョンを切り替える

# グローバルに設定
goenv global 1.23.2

# プロジェクトごとに設定(.go-versionを作成)
goenv local 1.22.8

goenv local を実行するとプロジェクトディレクトリに .go-version ファイルが作成されます。

1.22.8

バージョンを確認する

go version
# go version go1.22.8 darwin/arm64

goenv versions
#   1.22.8
# * 1.23.2 (set by /Users/username/.goenv/version)

miseとgoenvの比較

mise goenv
対応言語 多言語(Go・Node.js・Python等) Go専用
インストール brew install mise git clone + シェル設定
設定ファイル .mise.toml .go-version
他ツールとの共存 しやすい Goのみ

GoだけでなくNode.jsやPythonも管理するなら mise が手軽でおすすめです。Go専用で使い慣れたrbenv系がいい場合は goenv を選んでください。


GOPATH と GOROOT について

バージョン管理ツールを使う場合、GOPATHGOROOT を明示的に設定する必要はありません。ツールが自動で設定します。

# 現在の設定を確認
go env GOROOT  # Goのインストールパス
go env GOPATH  # モジュールキャッシュ等のパス

まとめ

ツール インストール バージョン指定 確認
mise brew install mise mise use go@1.23 mise list go
goenv git clone + シェル設定 goenv local 1.23.2 goenv versions
  • 多言語環境なら mise がおすすめ
  • Go専用で使いたい場合は goenv
  • .mise.toml / .go-version をgit管理することでチームのバージョンを統一できる