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 hellogo 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.gogo 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