👟

WindowsにGo言語をインストールする方法

2023/05/25に公開

はじめに

この記事では、Windows上で Go言語の開発環境を構築する方法について説明します。
Go言語のインストール自体は容易ですが、インストール先や設定には注意が必要です。
デフォルトでは、インストール先が「C:\Program Files\Go」、GOPATHが「C:\Users\<ユーザー名>\.go」になります。

この場合、ディレクトリが空白を含んでいるため、一部のツールがディレクトリを認識できない場合があります。
また、GOPATHによりホームディレクトリ直下に設定ファイルやパッケージファイルが保存されますが、すでにいくつかのディレクトリが存在しているため、ディレクトリの管理が煩雑になります。

このようにデフォルトの設定では不便なため、今回は Go 言語を「C:\lang\go」にインストールします。 GOPATHXDG 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_HOMEXDG_DATA_HOMEXDG_CACHE_HOMEXDG_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%binPathに追加



  • GOPATH の設定で環境変数を参照してはいけない。Path が"%XDG_...%"のように実際のディレクトリとは違う値になり、作成した Go バイナリが見つからなくなる
  • 設定を Windows に反映させるため、再起動をする必要がある

環境変数の設定方法

環境変数の設定は、[システムのプロパティ]ダイアログから行えます。
以下に、Windows で環境変数を設定する手順を示します。

  1. [スタートメニュー]を右クリックし、[システム]を選択

  2. [システムの詳細設定]をクリック

  3. "システムのプロパティ"ダイアログが表示されるので、[環境変数]をクリック

  4. "環境変数"ダイアログが表示されるので、編集したい環境変数を選択し[編集]をクリック

  5. 必要な環境変数を編集し、[OK]をクリック

  6. 各ダイアログの[OK]をクリックしてダイアログを閉じる

以上で、環境変数の設定は終了です。
具体的な設定内容は、環境変数の設定の表を参照してください。

2.3. goの動作確認

環境変数が正しく設定されていれば、Go 言語は正常に動作します。
go versionコマンドは、Go の現在のバージョンを出力します。
go versionを実行して、Go 言語が正常に動作することを確認します。

Terminal
> go version
go version goX.XX.X windows/amd64

>

上記のように、Go のバージョンが出力されます。

3. はじめてのGoプログラム

3.1. Goで"Hello, World!!"

次の手順で、Go で"Hello, World!!"と出力するプログラムを作成します。

  1. Go のモジュールディレクトリを作成する

    mkdir hello & cd hello
    
    

    プログラム作成用に、新たにhelloディレクトリを作成し、そこに移動します。

  2. Go のモジュールを初期化する

    go mod init hello
    
    

    go mod initは、新しい Goモジュールの作成と初期化を行います。
    今回は、helloディレクトリを Goモジュールのルートとして初期化し、go.modファイルを作製します。

  3. hello.goファイルを作成し、以下のようにコードを記述する

    hello.go
    package main
    
    import "fmt"
    
    func main() {
      fmt.Println("Hello, World!!");
    }
    

    Goモジュール内に Go 言語のプログラムを作成します。

  4. go runコマンドで、goプログラムを実行する

    go run hello.go
    
    

    go runコマンドを使い、作成したプログラムを実行します。

  5. "Hello, World!!"とメッセージが表示される

上記のようにメッセージが表示されれば、Go 言語でのプログラム作成 h は成功しています。

さいごに

ここまでで、Go 言語をインストールし簡単なプログラムを作成しました。
これで、Go 言語を使ってプログラミングを始めることができます。
Go 言語はシンプルでパワフルな言語であり、さまざまなアプリの開発に利用できます。
ぜひ、この記事を参考に自身の開発環境を構築し、Go 言語の世界を探索してみてください。

それでは、Happy Hacking!

技術用語と注釈

  • GOPATH:Go 言語のワークスペースのディレクトリ。Go 言語のプロジェクトが格納される場所
  • XDG Base Directory: 設定ファイルなどの保存先を定めた統一規格。これにより、設定ファイルの保存先が整理される
  • winget:Windows 用のパッケージマネージャー。 Windows のコマンドラインからアプリをインストールできる

参考資料

Webサイト

GitHubで編集を提案

Discussion