WindowsにGo言語をインストールする方法
はじめに
この記事では、Windows上で Go言語の開発環境を構築する方法について説明します。
Go言語のインストール自体は容易ですが、インストール先や設定には注意が必要です。
デフォルトでは、インストール先が「C:\Program Files\Go
」、GOPATH
が「C:\Users\<ユーザー名>\.go
」になります。
この場合、ディレクトリが空白を含んでいるため、一部のツールがディレクトリを認識できない場合があります。
また、GOPATH
によりホームディレクトリ直下に設定ファイルやパッケージファイルが保存されますが、すでにいくつかのディレクトリが存在しているため、ディレクトリの管理が煩雑になります。
このようにデフォルトの設定では不便なため、今回は Go 言語を「C:\lang\go
」にインストールします。 GOPATH
もXDG Base Directory
に準じて「C:/Users/<ユーザー名>/.local/share/go
」に設定します。
1. 環境の準備
1.1. Goのインストール先
プログラミング言語は基本的にC:\lang\
下にインストールします。今回は Go 言語をインストールするので、C:\lang\go
となります。
C:\lang
は、Windows の一般的なインストール先であるC:\Program Files
とは異なり、ディレクトリ名に空白が含まれていません。
空白を含むディレクトリ名は、一部のツールで予期しない動作を引き起こす可能性があるため、空白を避けることが推奨されます。空白のないディレクトリ名を使用することで、問題を回避できます。
1.2. XDG Base Directory
XDG Base Directory
は、ユーザーデータや設定ファイルの保存先を決める標準的な規格です。UNIX/Linux 環境では標準でサポートされており、多くのアプリがXDG
にしたがって設定ファイルを保存しています。
Windows 環境でも、XDG
の規格が活用できます。
XDG_CONFIG_HOME
、XDG_DATA_HOME
、XDG_CACHE_HOME
、XDG_STATE_HOME
の各環境変数を設定します。
それに合わせてディレクトリ構造を準備することで、さまざまなアプリがXDG
下に設定ファイルを保存できます。
2. Goのインストール
2.1. wingetによるgoのインストール
Go言語は、Windows 用のパッケージマネージャーwinget
に対応しています。
winget
を使えば、ブラウザ経由でインストーラーをダウンロード、実行する必要はなく、コマンドラインでwinget
を実行することで迅速にインストールが可能です。
winget
にはインストール先を指定する--location
オプションがありますが、Go 言語インストーラーはこれを無視します。
そのため、`INSTALLDIR'という変数を利用します。
次のコマンドで、Go 言語をインストールします。
winget install GoLang.Go --override "INSTALLDIR=C:\\lang\\go"
2.2. 環境変数の設定
Go 言語を使用するためには、一部の環境変数を設定する必要があります。設定する環境変数とその値は以下の通りです。
環境変数 | 設定値 | 説明 |
---|---|---|
GOPATH | C:/Users/<ユーザー名>/.local/share/go |
Go 言語のワークスペースのパスです。 XDG_DATA_HOME 下に設定します。 |
PATH | ...;C:\lang\go\bin;%GOPATH%\bin |
C:\lang\go\bin と%GOPATH%bin をPath に追加 |
注
- GOPATH の設定で環境変数を参照してはいけない。Path が"%XDG_...%"のように実際のディレクトリとは違う値になり、作成した Go バイナリが見つからなくなる
- 設定を Windows に反映させるため、再起動をする必要がある
環境変数の設定方法
環境変数の設定は、[システムのプロパティ]ダイアログから行えます。
以下に、Windows で環境変数を設定する手順を示します。
-
[スタートメニュー]を右クリックし、[システム]を選択
-
[システムの詳細設定]をクリック
-
"システムのプロパティ"ダイアログが表示されるので、[環境変数]をクリック
-
"環境変数"ダイアログが表示されるので、編集したい環境変数を選択し[編集]をクリック
-
必要な環境変数を編集し、[OK]をクリック
-
各ダイアログの[OK]をクリックしてダイアログを閉じる
以上で、環境変数の設定は終了です。
具体的な設定内容は、環境変数の設定の表を参照してください。
2.3. goの動作確認
環境変数が正しく設定されていれば、Go 言語は正常に動作します。
go version
コマンドは、Go の現在のバージョンを出力します。
go version
を実行して、Go 言語が正常に動作することを確認します。
> go version
go version goX.XX.X windows/amd64
>
上記のように、Go のバージョンが出力されます。
3. はじめてのGoプログラム
3.1. Goで"Hello, World!!"
次の手順で、Go で"Hello, World!!"と出力するプログラムを作成します。
-
Go のモジュールディレクトリを作成する
mkdir hello & cd hello
プログラム作成用に、新たに
hello
ディレクトリを作成し、そこに移動します。 -
Go のモジュールを初期化する
go mod init hello
go mod init
は、新しい Goモジュールの作成と初期化を行います。
今回は、hello
ディレクトリを Goモジュールのルートとして初期化し、go.mod
ファイルを作製します。 -
hello.go
ファイルを作成し、以下のようにコードを記述するhello.gopackage main import "fmt" func main() { fmt.Println("Hello, World!!"); }
Goモジュール内に Go 言語のプログラムを作成します。
-
go run
コマンドで、goプログラムを実行するgo run hello.go
go run
コマンドを使い、作成したプログラムを実行します。 -
"Hello, World!!"とメッセージが表示される
上記のようにメッセージが表示されれば、Go 言語でのプログラム作成 h は成功しています。
さいごに
ここまでで、Go 言語をインストールし簡単なプログラムを作成しました。
これで、Go 言語を使ってプログラミングを始めることができます。
Go 言語はシンプルでパワフルな言語であり、さまざまなアプリの開発に利用できます。
ぜひ、この記事を参考に自身の開発環境を構築し、Go 言語の世界を探索してみてください。
それでは、Happy Hacking!
技術用語と注釈
- GOPATH:Go 言語のワークスペースのディレクトリ。Go 言語のプロジェクトが格納される場所
- XDG Base Directory: 設定ファイルなどの保存先を定めた統一規格。これにより、設定ファイルの保存先が整理される
- winget:Windows 用のパッケージマネージャー。 Windows のコマンドラインからアプリをインストールできる
参考資料
Webサイト
- Go 公式ウェブサイト: https://go.dev/
- XDG Base Directory: https://wiki.archlinux.jp/index.php/XDG_Base_Directory
- winget Package Manager: https://github.com/microsoft/winget-cli
Discussion