Menu

Go言語のインストール方法:Windows・Mac・Linux対応の手順

Windows、macOS、LinuxでGoをダウンロードしてインストールする方法、go versionでの確認、GOPATHの意味、「go: command not found」エラーの直し方を解説します。

このページのコードはエディタで実行できます - 編集してすぐに結果を確認できます。

go.dev/dl からGoをダウンロードし、お使いのシステム用のインストーラーを実行して、新しいターミナルを開き、go version を実行します。WindowsとmacOSならインストールはこれで終わりです。Linuxではtarballを展開し、ディレクトリを1つ PATH に追加します。以下ではシステムごとの手順を説明し、その後に確認方法と実際によく出会うエラーを取り上げます。

試すだけならGoをインストールする必要はありません。このプログラムはブラウザ上で、このサイトが使っているのと同じGoのリリースで動き、実行環境の情報を表示します。

手元にGoをインストールしたら、同じプログラムが自分のマシンの情報を表示します。

どのファイルをダウンロードするか

ダウンロードページには、OSとCPUアーキテクチャごとに1つずつファイルが並んでいます。

システムファイル備考
Windows(大半のPC)go1.24.5.windows-amd64.msiamd64 は64ビットのIntelまたはAMD
ARM版Windowsgo1.24.5.windows-arm64.msiSurface Pro X、Snapdragon搭載ノートPC
macOS、Appleシリコン(M1以降)go1.24.5.darwin-arm64.pkgdarwin はmacOSのこと
macOS、Intelgo1.24.5.darwin-amd64.pkg
Linux(大半のサーバーとPC)go1.24.5.linux-amd64.tar.gz
ARM版Linuxgo1.24.5.linux-arm64.tar.gz64ビットOSのRaspberry Pi 4と5、AWS Graviton

この例のバージョン番号は1.24.5です。その時点で最新の安定版を選んでください。手順はバージョンが変わっても同じです。

WindowsにGoをインストールする

  1. .msi ファイルをダウンロードして実行します。
  2. デフォルトのまま進めます。Goは C:\Program Files\Go にインストールされ、インストーラーが C:\Program Files\Go\binPATH に追加します。
  3. 開いているコマンドプロンプトやPowerShellのウィンドウをすべて閉じ、新しく開きます。インストール中に開いていたターミナルは古い PATH のままです。
  4. インストールを確認します。
go version
go version go1.24.5 windows/amd64

パッケージマネージャーを使いたい場合は winget でも入ります。

winget install GoLang.Go

macOSにGoをインストールする

公式パッケージを使う

お使いのチップに合った .pkg をダウンロードして開きます。Goは /usr/local/go にインストールされ、/etc/paths.d/go というファイルを通じて /usr/local/go/binPATH に追加されます。新しいターミナルウィンドウを開いてから実行します。

go version
go version go1.24.5 darwin/arm64

Homebrewを使う

brew install go
go version

HomebrewはGoを独自のプレフィックス(Appleシリコンでは /opt/homebrew)の下に置き、すでに PATH に入っているディレクトリに go をリンクします。あとで更新するときは brew upgrade go を使います。

方法はどちらか1つにしてください。.pkg とHomebrewの両方でインストールすると PATH 上に go バイナリが2つでき、先に見つかったほうが使われます。シェルがどちらを使っているかは which go でわかります。

Linux・UbuntuにGoをインストールする

公式の方法はどのディストリビューションでも使えます。まず以前のインストールを削除してください。古いツリーの上に展開すると2つのバージョンのファイルが混ざり、ツールチェーンが壊れます。

cd ~/Downloads
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz

次にGoを PATH に追加します。この行を ~/.profile(bash)または ~/.zshrc(zsh)の末尾に追記します。

export PATH=$PATH:/usr/local/go/bin

現在のシェルに読み込んで確認します。

source ~/.profile
go version
go version go1.24.5 linux/amd64

Ubuntuのパッケージ:aptとsnap

Ubuntuには2つの近道があり、それぞれトレードオフが異なります。

# Distribution package: easy, but usually several releases old
sudo apt install golang-go

# Snap: tracks current Go releases
sudo snap install go --classic

aptのバージョンは見た目以上に重要です。モジュールは go.mod で最低限必要なGoのバージョンを宣言します。Go 1.21以降では、go 1.23 と書かれたモジュールは、Goが新しいツールチェーンをダウンロードできない限り古いツールチェーンではビルドされません。1.21より古いツールチェーンはとにかくビルドを試み、最初に出会った新しい機能のところで失敗します(後述の「Goを最新に保つ」を参照)。aptでインストールした場合は、go version を実行してgo.dev/dlと比べてください。

インストールを確認する

次の3つのコマンドで、正しくセットアップできたかを確認できます。

go version
go env GOROOT GOPATH
which go
go version go1.24.5 linux/amd64
/usr/local/go
/home/ana/go
/usr/local/go/bin/go
  • GOROOT はGo本体のインストール先です。自分のコードをここに置いてはいけませんし、設定する必要もないはずです。
  • GOPATH のデフォルトは $HOME/go(Windowsでは %USERPROFILE%\go)です。Goはダウンロードしたモジュールを $GOPATH/pkg/mod に保存し、go install でビルドしたプログラムを $GOPATH/bin に置きます。
  • which go(Windowsでは where go)は、シェルが実行するバイナリそのものを表示します。go version が予想外のバージョンを表示したときはこれを使ってください。

最初のプログラムを実行する

コードはどのディレクトリに置いても構いません。フォルダを作り、モジュールを初期化して、ファイルを書きます。

mkdir hello
cd hello
go mod init example.com/hello
go: creating new go.mod: module example.com/hello

これをそのフォルダに main.go として保存します。

そして実行します。

go run .
Go is installed and working.

go run . はカレントディレクトリのパッケージをコンパイルして実行します。プログラムの各行はHello Worldのページで説明しており、go mod init の手順はGoモジュールのページで扱っています。

GOPATH/binをPATHに追加する

go install でインストールしたツールは $HOME/go/bin に入りますが、このディレクトリはデフォルトでは PATH にありません。ツールをインストールしたのにシェルが見つけられない場合は、このディレクトリも追加します。

go install golang.org/x/tools/cmd/goimports@latest
export PATH=$PATH:$(go env GOPATH)/bin
goimports -h

新しいターミナルでも有効になるよう、export の行を ~/.profile~/.zshrc に書いておきます。Windowsでは、インストーラーがすでに %USERPROFILE%\go\bin をユーザーの PATH に追加しています。

Goを最新に保つ

アップグレードするには、古いリリースを入れたときと同じ方法で新しいリリースをインストールします。Linuxなら rm -rf /usr/local/gotar の手順を繰り返すことになります。削除の手順は省かないでください。

Go 1.21からは、go コマンドが必要に応じて新しいツールチェーンを取得することもできます。モジュールの go.modgo 1.24 と書かれていて、インストールされているのがGo 1.22の場合、GOTOOLCHAIN がデフォルトの auto のままなら、go build はGo 1.24をモジュールキャッシュにダウンロードしてそれを使います。インストール済みのGoはそのままで、そのモジュールだけが新しいリリースでビルドされます。

テスト用に古いバージョンも残しておきたい場合は、並べてインストールします。

go install golang.org/dl/go1.23.4@latest
go1.23.4 download
go1.23.4 version

よくあるインストールエラー

go: command not foundzsh: command not found: go シェルがバイナリを見つけられていません。Linuxでは、シェルが実際に読むファイル(zshなら ~/.zshrc、bashなら ~/.profile~/.bashrc)の export PATH の行に /usr/local/go/bin が入っているか確認し、新しいターミナルを開きます。echo $PATH でシェルが持っている値を確認できます。

'go' is not recognized as an internal or external command(Windows)。 ターミナルを閉じて開き直します。それでも出る場合は「システム環境変数の編集」を開いて「環境変数」をクリックし、PathC:\Program Files\Go\bin が入っているか確認します。VS Codeの組み込みターミナルはVS Code起動時の環境を引き継ぐので、VS Codeも再起動してください。

アップグレード後も go version が古いバージョンを表示する。 PATH 上に2つのインストールがあります。which -a go(Windowsでは where go)を実行し、不要なほうを削除します。よくあるのは、/usr/bin/go にあるaptのパッケージが /usr/local/go/bin/go より先に見つかっているケースです。

go: go.mod file not found in current directory or any parent directory Goは正しくインストールされています。モジュールの外で go buildgo run . を実行しただけです。先にプロジェクトのフォルダで go mod init example.com/yourname を実行してください。

Linuxでアップグレードした後、標準ライブラリで奇妙なコンパイルエラーが出る。 新しいtarballが古いツリーの上に展開されています。/usr/local/go を完全に削除してから展開し直します。

展開時にPermission deniedになる。 /usr/local の所有者はrootなので、rmtar のコマンドには sudo が必要です。自分のコードで sudo が必要になることはありません。

エディタの設定

どのエディタでも使えますが、補完、エラーのハイライト、保存時の整形が使えるようにGoのサポートを入れておきましょう。VS Codeでは公式のGo拡張機能(GoogleのGoチームが公開)をインストールします。初めて .go ファイルを開いたときに、Goの言語サーバーである gopls のインストールを提案してくれます。JetBrainsのGoLandが主な商用の選択肢です。VimやNeovimはLSPクライアント経由で gopls を使います。

よくある質問

Golangはどうやってインストールしますか?

go.dev/dl からお使いのシステム用のインストーラーをダウンロードします。Windowsでは .msi を、macOSでは .pkg を実行し(または brew install go)、Linuxではtarballを /usr/local に展開して /usr/local/go/binPATH に追加します。新しいターミナルを開き、go version を実行して確認します。

「go: command not found」はどう直せばよいですか?

シェルが PATH 上に go バイナリを見つけられていません。Linuxでは ~/.profile(zshなら ~/.zshrc)に export PATH=$PATH:/usr/local/go/bin を追加し、新しいターミナルを開きます。WindowsやmacOSのインストーラーを使った場合は、ターミナルを閉じて開き直すだけで直ることがほとんどです。ターミナルは起動時の PATH を持ち続けるからです。

UbuntuにGoをインストールするには?

公式のtarballを使います:sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz を実行してから、/usr/local/go/binPATH に追加します。sudo apt install golang-go でも入りますが、Ubuntuのパッケージは数リリース古いことがよくあります。sudo snap install go --classic なら最新のリリースに追従します。

GOPATHを設定する必要はありますか?

ありません。Go 1.16以降はモジュールモードがデフォルトなので、コードはどのディレクトリに置いても構いません。GOPATH のデフォルトは $HOME/go で、モジュールのダウンロードキャッシュと、go install がビルドしたバイナリの置き場所($HOME/go/bin)にしか使われません。

インストールされているGoのバージョンを確認するには?

go version を実行します。go version go1.24.5 linux/amd64 のように、リリース、続いてOSとCPUアーキテクチャが表示されます。go env は、GOROOT(Goのインストール先)や GOPATH を含む設定全体を表示します。

Coddy programming languages illustration

Coddyでコードを学ぼう

始める