【Ubuntu版】Linuxユーザー必見: Ubuntu での Go 開発環境 構築と実践ガイド

なぜ今、UbuntuでGo開発を始めるべきなのか?

開発者の皆さんの中には、Go言語に興味を持ちつつも、どのOSで開発環境を構築すべきか迷っている方もいるのではないでしょうか。

特にLinuxユーザー、中でもUbuntuをお使いの方にとって、Goは非常に魅力的な選択肢です。

Go言語は、Googleが開発したオープンソースのプログラミング言語で、そのシンプルさ、高いパフォーマンス、並行処理の容易さから、Webサービス、マイクロサービス、CLIツールなど、幅広い分野で採用が進んでいます。

そして、Linux環境、特にUbuntuは、Go開発において非常に相性の良いプラットフォームと言えます。

この記事では、Ubuntuユーザーの皆さんがGo開発をスムーズに始められるよう、Goのインストールから基本的な開発フローまでを、ステップバイステップで徹底解説します。

さあ、一緒にUbuntuでGo開発の世界へ飛び込みましょう!


目次


対象読者

  • Go言語に興味があり、Ubuntu環境で開発を始めたいと考えている開発者
  • UbuntuでのGoのインストール方法(APT, Snap, 公式バイナリ)を知りたい方
  • Go言語の基本的な開発フローを理解したい方

動作検証環境

この記事は、以下の環境で検証しています。

  • OS : macOS Tahoe Version 26.0
  • ハードウェア : MacBook Air 2024 M3 24GB
  • Multipass : Multipass version 1.16.1
  • Ubuntu : 24.0.4.0.2

1. UbuntuでGo開発を始めるメリット

1-1. Go言語のメリット

UbuntuでのGo開発には、いくつかのメリットがあります。

Go言語との高い親和性

  • Go言語は、その設計思想からLinux環境との親和性が非常に高いです。コンパイルされたバイナリは単一ファイルで動作し、デプロイが容易であるため、Linuxサーバー環境での運用に最適です。

豊富な開発ツールとライブラリ

  • Ubuntuは、開発者にとって非常に人気のあるOSであり、Go開発に必要なツールやライブラリが豊富に提供されています。
  • パッケージマネージャーを使えば、Go本体はもちろん、エディタやその他の開発ツールも簡単に導入できます。

活発なコミュニティと情報

  • Go言語のコミュニティは世界中で活発に活動しており、特にLinuxユーザーが多い傾向にあります。困ったことがあっても、オンラインフォーラムやドキュメントで解決策を見つけやすいでしょう。

柔軟な環境構築

  • Ubuntuでは、APT、Snap、公式バイナリなど、Goをインストールする方法が複数あります。
  • これにより、ご自身の環境や好みに合わせて最適なインストール方法を選択できる柔軟性があります。

1-2. Goが選ばれる理由:主要なユースケース

Go言語は、その設計思想と機能特性から、現代のソフトウェア開発における様々な分野で強力な選択肢となっています。特にUbuntu環境での開発においても、その恩恵を最大限に享受できます。

クラウド&ネットワークサービス:

  • 主要なクラウドプロバイダー(AWS, GCP, Azureなど)のツールやAPIとの強力なエコシステムにより、Goを使ったサービス構築がこれまで以上に容易になっています。Ubuntu上で開発したGoアプリケーションを、そのままクラウド環境にデプロイするワークフローは非常にスムーズです。

CLI (コマンドラインインターフェース) ツール:

  • Goは、高速な起動と単一バイナリ生成という特性から、強力なCLIツールの開発に最適です。Ubuntuのターミナルで日常的に利用するようなツールを、Goで効率的に開発・配布できます。

Web開発:

  • 優れたメモリ性能と複数のIDEサポートにより、Goは高速でスケーラブルなWebアプリケーションを支えます。Ubuntuの安定した開発環境とVS CodeなどのIDEを組み合わせることで、効率的なWeb開発が可能です。

開発運用 (DevOps) & サイト信頼性エンジニアリング (SRE):

  • 高速なビルド時間、簡潔な構文、自動フォーマッター、ドキュメントジェネレーターなど、GoはDevOpsとSREの両方をサポートするように設計されています。Ubuntu上でこれらのツールを開発・運用することで、開発プロセス全体の効率化に貢献します。

2. UbuntuでのGoインストール方法

それでは、実際にUbuntuにGoをインストールする方法を見ていきましょう。
ここでは、主に3つの方法を紹介します。


2-1. APTパッケージマネージャーを使ったインストール(推奨)

Ubuntuユーザーにとって最も一般的で推奨される方法です。システムにGoを統合しやすく、アップデートも容易です。

  1. パッケージリストの更新:
    まず、システムのパッケージリストを最新の状態に保ちます。
sudo apt update
sudo apt upgrade
  1. Goのインストール:
    以下のコマンドでGoをインストールします。
sudo apt install golang-go

これにより、Goの最新の安定版がインストールされます。


2-2. Snapを使ったインストール

Snapは、Ubuntuが推奨するユニバーサルパッケージシステムです。Goの最新バージョンを簡単にインストールできます。

  1. Goのインストール:
    以下のコマンドでGoをインストールします。
sudo snap install go --classic

--classic オプションは、Goがシステムリソースにアクセスするために必要です。


2-3. 公式バイナリを使った手動インストール

特定のGoバージョンをインストールしたい場合や、より細かく制御したい場合に選択します。

  1. Goバイナリのダウンロード:
    Go公式サイト から、Linux向けの最新のGoバイナリ(goX.Y.Z.linux-arm64.tar.gz のようなファイル名)をダウンロードします。
  2. アーカイブの展開:
    ダウンロードしたファイルを /usr/local に展開します。
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf goX.Y.Z.linux-arm64.tar.gz

X.Y.Z はダウンロードしたGoのバージョンに置き換えてください。

  1. 環境変数の設定:
    次のセクションで詳しく説明しますが、手動インストールの場合は環境変数の設定が必須です。

3. Goの環境変数設定

Goをインストールしたら、正しく動作させるために環境変数を設定する必要があります。


3-1. PATH環境変数の設定

Goの実行ファイルがどこにあるかをシステムに教えるために、PATH にGoのバイナリディレクトリを追加します。

  • APT/Snapでインストールした場合:
    通常、これらの方法でインストールした場合、PATH は自動的に設定されます。
  • 手動でインストールした場合:
    ~/.profile または ~/.bashrc~/.zshrc などのシェル設定ファイルに以下の行を追加します。
export PATH=$PATH:/usr/local/go/bin

変更を適用するために、シェルを再起動するか、以下のコマンドを実行します。

source ~/.profile # または ~/.bashrc, ~/.zshrc

3-2. GOPATH環境変数の設定(オプション)

GOPATH は、Goのワークスペースのルートディレクトリを指定する環境変数です。Go 1.11以降、Go Modulesが導入されたため、ほとんどのプロジェクトで明示的に GOPATH を設定する必要はなくなりましたが、古いプロジェクトや特定のツールではまだ使用されることがあります。

通常は、ユーザーのホームディレクトリに go ディレクトリを作成し、そこを GOPATH とします。

mkdir -p ~/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

これもシェル設定ファイルに追加し、変更を適用してください。


4. 簡単なGoプログラムの作成と実行

環境設定が完了したら、最初のGoプログラムを書いて実行してみましょう。「Hello World」プログラムです。

  1. プロジェクトディレクトリの作成:
    任意の場所に新しいディレクトリを作成し、その中に移動します。
mkdir myproject
cd myproject
  1. Goモジュールの初期化:
    Go Modulesを使ってプロジェクトを初期化します。これにより、依存関係管理が容易になります。
go mod init myproject
  1. main.go ファイルの作成:
    myproject ディレクトリ内に main.go という名前のファイルを作成し、以下のコードを記述します。
package main

import "fmt"

func main() {
    fmt.Println("Hello, Go from Ubuntu!")
}
  1. プログラムの実行:
    ターミナルで以下のコマンドを実行します。
go run main.go

Hello, Go from Ubuntu! と表示されれば成功です!


5. Goのアップデートとアンインストール

5-1. APTパッケージマネージャーでインストールした場合

  • アップデート:
    Ubuntuの公式リポジトリで提供されている最新バージョンにアップデートするには、以下のコマンドを実行します。
sudo apt update
sudo apt upgrade golang-go

より新しいバージョンのGoが必要な場合は、PPA (Personal Package Archive) を利用する方法があります。

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
  • アンインストール:
    Goパッケージを削除するには、以下のコマンドを実行します。
sudo apt remove golang-go

Goパッケージとその設定ファイルを完全に削除するには、purgeオプションを使用します。

sudo apt purge golang-go

Goのアンインストール後に、不要になった依存関係を削除するには、以下のコマンドを実行します。

sudo apt autoremove

5-2. Snapでインストールした場合

アップデート:

    Snapパッケージは通常、自動的に更新されますが、手動でGoを最新バージョンに更新したい場合は、以下のコマンドを使用します。

    sudo snap refresh go

    特定のバージョンのGoに更新したい場合は、まず利用可能なGoのバージョンを確認し、--channelオプションを使用します。

    snap info go
    sudo snap refresh go --channel=<version>/stable --classic

    <version>は、snap info goで確認したバージョンに置き換えてください。)

    アンインストール:

    GoのSnapパッケージをアンインストールするには、以下のコマンドを使用します。

      sudo snap remove go

      関連するユーザーデータや設定ファイルも完全に削除したい場合は、--purgeオプションを追加します。

      sudo snap remove --purge go

      5-3. 公式バイナリで手動インストールした場合

      アップデート:

      Goの公式バイナリをアップデートする際は、基本的に既存のGoをアンインストールし、新しいバージョンのGoを再インストールする形になります。

      1. 既存のGoのアンインストール:
        以下のコマンドで/usr/local/goディレクトリを削除します。
      sudo rm -rf /usr/local/go
      1. 新しいバージョンのGoをインストール:
        Goの公式サイトから最新バージョンのGoバイナリをダウンロードし、インストール手順に従って再インストールします。

      アンインストール:

      Goのアンインストールを行う前に、Goが保存しているユーザー設定やキャッシュ、ダウンロードされた依存関係のデータを削除することをお勧めします。これにより、システムからGo関連のファイルを完全にクリーンアップできます。

      1. ビルドキャッシュの削除:
        Goはビルド時に中間ファイルをキャッシュします。これらは以下のコマンドで削除できます。
      go clean -cache
      1. ダウンロードされた依存関係の削除:
        Go Modulesでダウンロードされた依存関係は、以下のコマンドで削除できます。
      go clean -modcache

      以下のファイルを削除することでアンインストールを実施できます。

      1. /usr/local/go ディレクトリを削除します。
      sudo rm -rf /usr/local/go
      1. /etc/paths.d/go ファイルを削除します。
      sudo rm -f /etc/paths.d/go
      1. ユーザー設定ディレクトリ内の go ディレクトリを削除します。
      rm -rf ~/go

      アンインストール後、go version コマンドで command not found と表示されることを確認してください。


      まとめ

      この記事では、UbuntuでのGo開発環境の構築方法を、APT、Snap、公式バイナリの3つの方法で解説し、環境変数の設定、そして簡単なGoプログラムの作成と実行までを網羅しました。

      これであなたは、Ubuntu上でGo言語を使った開発を始める準備が整いました。Go言語のシンプルさとパワフルさをぜひ体験してください。

      次のステップとしては、Goの基本的な文法を学んだり、Webフレームワークを試したり、あるいはこの記事のシリーズの次の記事で紹介するIDEの設定やLinterの導入、バージョン管理ツール goenv の活用方法などを学ぶことをお勧めします。

      Go開発の旅は始まったばかりです。このガイドが、あなたのGo開発ライフの素晴らしいスタートとなることを願います!


      免責事項

      この記事は、特定の環境下での動作を保証するものではありません。
      記事の内容は執筆時点での情報に基づいており、Go言語や関連ツールのアップデートにより、手順や設定が変更される可能性があります。
      環境構築やプログラムの実行は、ご自身の責任において行ってください。
      万一、この記事の内容によって何らかの損害が生じた場合でも、筆者および公開者は一切の責任を負いかねます。


      SNSでもご購読できます。

      コメントを残す

      *