はじめに
これまでバックエンドの言語といえば、Pythonばかりを勉強してきました。しかし、今回少しだけGoogleが開発した「Go」という言語についても学んでみようと思います。
以前から興味はあったものの、なかなか時間を確保できず手をつけられずにいましたが、この機会に挑戦してみることにしました。
この記事では、環境構築に焦点を当てています。この内容が誰かの技術の助けとなれば幸いです。
書こうと思ったきっかけ
現在受講しているITスクールでのハッカソン(チーム開発)では、バックエンド言語としてPythonまたはGoのどちらかを選択する必要があります。
私は直接バックエンドの担当ではありませんが、最低限「Hello, World!」やDockerファイルの作成程度の作業はできるようになりたいと思い、この機会に勉強を始めることにしました。
しかし、AWSのLambda関数で一部の言語がサポート対象外になるというニュースを目にしたこともあり、今後は基本的な部分だけを軽く学んでいく予定です。
参考記事:
困っていたこと
今回困っていたのは、使用しているMacBookでGoに関するコマンドを実行した際に、以下のエラーが発生したことです。
➜ Desktop git:(honda-branch) ✗ go version
zsh: command not found: go
この「zsh: command not found: go
」というエラーは、Goがインストールされていない、もしくは環境変数 PATH
にGoの実行ファイルパスが正しく設定されていない場合に発生します。
私の場合、Goの環境構築やインストールをまだ行っていなかったため、このエラーが発生したのは当然の結果でした(笑)。
これを機に、自宅環境のLinux、Mac、Windowsそれぞれの環境で、Go言語のインストールや環境変数の設定を進めていきたいと思います。
1. Goがインストールされているか確認する
以下のコマンドを実行して、Goがインストールされているか確認します。
go version
- 結果が表示されない場合: Goがインストールされていません。
- Goのバージョンが表示される場合: Goはインストールされていますが、PATHが正しく設定されていません。
2. Goをインストールする
a. Linuxの場合
-
Goの公式サイトから最新バージョンをダウンロードします: https://go.dev/dl/
例:以下のコマンドでダウンロードします。
wget https://go.dev/dl/go1.20.6.linux-amd64.tar.gz
-
Goをインストールします:
sudo tar -C /usr/local -xzf go1.20.6.linux-amd64.tar.gz
-
環境変数を設定します(
~/.zshrc
または~/.bashrc
に追加):export PATH=$PATH:/usr/local/go/bin
-
設定を反映します:
source ~/.zshrc
ここでは、自宅のLinuxサーバーにGoを導入しました。以下はそのインストール完了後のスクリーンショットです。
b. macOSの場合
-
Homebrewを使ってインストールします:
brew install go
-
PATHに追加します(必要であれば):
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.zshrc source ~/.zshrc
私の環境では、以下のようにインストールを実施しました。
c. Windowsの場合
- Goの公式サイトからインストーラをダウンロードします。
- インストール後、システム環境変数
Path
にGoのパスを追加します(通常C:\Go\bin
)。
Windows環境では、以下のようにインストールを実施しました。
3. 確認
Goのインストールが完了したら、以下のコマンドを実行してバージョンを確認します。
go version
実行例:
➜ Desktop git:(honda-branch) ✗ go version
go version go1.23.4 darwin/amd64
バージョンが正しく表示されれば、インストールと環境設定は完了です!
まとめ
ここまでお読みいただきありがとうございました。今回は、私のMacBookにGo言語のセットアップができていなかったため、自宅にあるすべての環境に導入してみました(笑)。
環境変数のパスも正しく設定できたので、これからはGoの基本的なコマンドが問題なく使えるようになると思います。
これから少しずつキャッチアップを進めていきたいと思います。この内容がどなたかの技術的な参考になれば幸いです。
おまけ
私自身、Go言語を本格的に学ぶかどうかはまだ決めていませんが、せめてGo言語のDockerファイルぐらいは作れるようになりたいと思っています。
最近はインフラやネットワーク関連の記事を書くことが多かったのですが、今回Go言語に触れてみたことで良い気分転換になりました。
次回は、Go言語のDockerファイル作成に挑戦してみようと思います。
参考記事