この記事では、macOSに Homebrew を利用して Go をインストールする方法と、Go の依存管理システムである Go Modules について、解説します。さらに、実際のプロジェクトでのモジュール初期化の例を紹介します。
前提条件
- macOS (例: macOS Sequoia)
- Homebrew が未導入の場合は、先にインストールしてください
1. Homebrew のインストール
Homebrew がまだインストールされていない場合、ターミナルを開き、以下のコマンドを実行してインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew のインストールが完了すれば、brew
コマンドが利用可能になります。
すでにインストール済みの場合は、このステップはスキップしてください。
2. Go のインストール
Homebrew を使って、最新の安定版 Go をインストールします。
ターミナルで以下のコマンドを実行してください。
brew install go
Homebrew が自動的に Go をダウンロードし、インストールしてくれます。
3. インストールの確認
Go が正しくインストールされたか、以下のコマンドで確認します。
go version
たとえば、以下のような出力が得られれば成功です。
go version go1.23.6 darwin/amd64
また、which go
コマンドで Go の実行ファイルの場所も確認できます。
which go
出力例:
/usr/local/bin/go
備考:
出力されたパスが正しければ、Homebrew 経由でインストールされた Go が正しく PATH に設定されています。Intel Mac と Apple Silicon でのパスの違いに注意してください。
4. Go Modules とは?
Go 1.11 以降、Go の依存管理システムとして Go Modules が標準で導入されています。
ここでは、Go Modules について簡単に解説します。
Go Modules の概要
-
目的:
プロジェクトで利用する外部パッケージ(ライブラリ)のバージョンや依存関係を管理するための仕組みです。
以前はGOPATH
を使って一括管理していましたが、Go Modules ではプロジェクト単位で管理できるため、より柔軟かつ再現性のあるビルド環境を実現します。 -
特徴:
-
プロジェクト単位の管理:
各プロジェクトにgo.mod
ファイルが作成され、どのライブラリのどのバージョンを使用しているかが明示されます。 -
再現性のあるビルド:
チーム開発やCI/CD環境で、全員が同じ依存関係でビルドできるため、環境依存の問題を防げます。 -
シンプルな操作:
go mod init
でモジュールを初期化し、go get
で必要なパッケージを追加するなど、コマンド操作が簡単です。
-
プロジェクト単位の管理:
5. プロジェクトでの Go Modules の利用準備
ここでは、実際のプロジェクト例として、GitHub 上のリポジトリ github.com/your-username/project_name
のサブディレクトリ tool を対象に、Go Modules を初期化する手順を紹介します。
プロジェクト構成例
project_name/ # プロジェクト全体
├── .git/
├── README.md
└── tool/ # Go コードのあるディレクトリ
├── Dockerfile
├── go.mod ← 初期化対象
└── src/
└── main.go
モジュールの初期化
-
ターミナルで tool ディレクトリに移動します。
cd project_name/tool
-
以下のコマンドを実行して、Go モジュールを初期化します。
リポジトリの構成に合わせて、モジュール名はgithub.com/your-username/project_name/tool
とします。go mod init github.com/your-username/project_name/tool
実行結果は次のようになります。
go: creating new go.mod: module github.com/your-username/project_name/tool go: to add module requirements and sums: go mod tidy
-
ls -la
でファイル一覧を確認すると、go.mod
ファイルが生成されていることがわかります。ls -la
出力例:
total 24 drwxr-xr-x 6 user staff 192 Feb 8 06:46 . drwxr-xr-x 6 user staff 192 Feb 8 06:46 .. -rw-r--r-- 1 user staff 62 Feb 8 06:46 go.mod drwxr-xr-x 2 user staff 64 Feb 8 05:53 src -rw-r--r-- 1 user staff 0 Feb 8 05:54 Dockerfile
補足:
「to add module requirements and sums: go mod tidy」とのメッセージは、今後依存パッケージを追加する際にgo mod tidy
コマンドを実行することで、不要な記述の削除や依存関係の整理が行えることを示しています。
6. まとめ
この記事では、macOS に Homebrew を利用して Go をインストールする手順と、Go Modules の基本概念および実際のプロジェクトでのモジュール初期化方法について解説しました。
-
Homebrew のインストール:
未導入の場合、上記の手順で Homebrew をインストールしてください。 -
Go のインストール:
brew install go
を実行して最新の Go をインストール。 -
動作確認:
go version
とwhich go
コマンドでインストール状況をチェック。 -
Go Modules の概要:
プロジェクト単位で依存管理を行い、再現性のあるビルド環境を実現する仕組みです。 -
モジュール初期化:
サブディレクトリ tool でgo mod init github.com/your-username/project_name/tool
を実行し、go.mod
ファイルを生成。
これで macOS 上に Go の開発環境が整い、プロジェクトごとに依存関係を管理できるようになりました。ぜひこれらの手順を参考に、Go を使った開発を進めてみてください。