Goのバージョン確認方法まとめ
はじめに
Goを使っていると、こんな場面でバージョンを確認したくなります。
- インストールできているか確認したい
go.modのgoディレクティブと実行環境が合っているか確認したい- 複数バージョンを使い分けているときに現在のバージョンを確認したい
この記事ではターミナルコマンドからGoコード内まで、バージョン確認方法をまとめます。
ターミナルでの確認
基本的な確認
go version
go version go1.23.2 darwin/arm64
GoのバージョンとOS・アーキテクチャが表示されます。
バージョン番号だけ取得する
go env GOVERSION # go1.23.2
go env は Go の環境変数を表示するコマンドです。GOVERSION を指定するとバージョン番号のみ取得できます。
go env で詳細情報を確認する
go env
GOARCH="arm64" GOBIN="" GOCACHE="/Users/username/Library/Caches/go-build" GOENV="/Users/username/Library/Application Support/go/env" GOFLAGS="" GOMODCACHE="/Users/username/go/pkg/mod" GOPATH="/Users/username/go" GOROOT="/usr/local/go" GOVERSION="go1.23.2" ...
よく確認する項目:
| 変数 | 内容 |
|---|---|
GOVERSION |
Goのバージョン |
GOROOT |
Goのインストールパス |
GOPATH |
ワークスペースのパス |
GOARCH |
CPUアーキテクチャ |
GOOS |
OS |
Goコード内での確認
runtime パッケージで確認する
package main import ( "fmt" "runtime" ) func main() { fmt.Println(runtime.Version()) // go1.23.2 fmt.Println(runtime.GOOS) // darwin fmt.Println(runtime.GOARCH) // arm64 }
バージョン比較
go/version パッケージ(Go 1.22以降)を使うと安全にバージョン比較できます。
package main import ( "fmt" "go/version" "runtime" ) func main() { v := runtime.Version() if version.Compare(v, "go1.21") >= 0 { fmt.Println("Go 1.21以上です") } }
go.mod でのバージョン指定確認
プロジェクトの go.mod に使用するGoのバージョンが記載されています。
cat go.mod
module myapp
go 1.23.2
require (
...
)
go ディレクティブで指定されたバージョンと、実行環境のGoバージョンが一致しているか確認します。
インストール確認
コマンドが見つからない場合はGoがインストールされていません。
go version # zsh: command not found: go
macOSの場合はHomebrewでインストールできます。
brew install go
または公式サイトからダウンロードします。
まとめ
| 確認内容 | コマンド |
|---|---|
| Goバージョン | go version |
| バージョン番号のみ | go env GOVERSION |
| 環境変数全般 | go env |
| コード内で確認 | runtime.Version() |
| インストールパス | go env GOROOT |
バージョン管理ツール(mise・goenv)を使うと、プロジェクトごとにGoのバージョンを切り替えられます。詳しくは「Goのバージョン管理:miseとgoenvの使い方」を参照してください。