Goのバージョン確認方法まとめ

スポンサーリンク

Goのバージョン確認方法まとめ

はじめに

Goを使っていると、こんな場面でバージョンを確認したくなります。

  • インストールできているか確認したい
  • go.modgo ディレクティブと実行環境が合っているか確認したい
  • 複数バージョンを使い分けているときに現在のバージョンを確認したい

この記事ではターミナルコマンドから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の使い方」を参照してください。