Windows に WSL 環境を構築し、hello.go を動かしてみたい
こんにちは!よしななです。
今回ですが、Linux のしくみを買ったので色々試そうとしたのですが、手元には Windows PC しかないため WSL をインストールし、手元で Linux のしくみのサンプルスクリプトが動かせるように環境構築をしました。
手順をまとめたので備忘録として残します。
目次
- 前提
- WSL とは
- 環境構築手順
- WSL のインストール
- 起動した WSL に golang をインストールする
- hello.go の実行
- 最後に
前提
- OS
- Windows 11
WSL とは
WSL(Windows Subsystem for Linux)とは、Windowsコンピューターで Linux を直接実行できるようにする機能です。Windows 10 以降の OS に組み込まれた機能となります。
簡単に言えば、「 Windows の中で Linux を動かす」ための仕組みとなります。
Windows に WSL をインストールすることで、以下のようなメリットがあります。
- 普段使っているWindowsパソコンで、Linuxの便利なコマンドやツールが使えるようになる
- WindowsのファイルシステムとLinuxのファイルシステムの間でファイルを簡単に共有できる
- 仮想マシンを使うよりも軽く、システムリソースを節約できる
環境構築手順
それでは、Windows 11 で Linux コマンドを実行できるようにします。
以下の3つの手順について、まとめます。
- Windows 11 に WSL をインストール
- 起動した WSL に golang をインストールする
WSL のインストール
PowerShell から以下のコマンドを実行します。
# 管理者で実行する
PS C:\> wsl --install
コマンドを実行すると、WSL がインストールされます。
WSL 有効化のため、Windows を再起動し、以下のコマンドを実行してバージョンが確認出来たらインストール成功となります。
PS C:\> wsl --version
WSL バージョン: 2.2.4.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.61
MSRDC バージョン: 1.2.5326
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26091.1-240325-1447.ge-release
Windows バージョン: 10.0.22631.4249
WSL の既定のディズトリビュージョンは Ubuntu になりますが、
以下のコマンドを実行することで Ubuntu 以外のディストリビューションをインストール、変更が可能です。
# 指定したディストリビューションのインストール
PS C:\> wsl --install OracleLinux_7_9
# 既定のディストリビューションを変更
PS C:\> wsl -s Ubuntu
# ※インストール済みのディストリビューションを起動
PS C:\> wsl -d Ubuntu
WSL の起動は以下のコマンドを実行するとデフォルトディストリビューションである Ubuntu が起動します。
# ディストリビューションの起動
PS C:\> wsl -d Ubuntu
起動した WSL に golang をインストールする
次に、WSL 上で Helloworld.go を動かすため、golang をインストールします。
Ubuntu ディストリビューションを起動します。
# ディストリビューションの起動
PS C:\> wsl -d Ubuntu
次に、wget
コマンドを使用し、パッケージを取得します。
最新バージョンの確認は公式サイトから確認できます。
公式サイト:
※go1.23.1.linux-amd64.tar.gz
の部分は上記公式サイトで確認したバージョンか、必要なバージョンを確認したうえで適宜変更します。
# インストーラの取得
wget https://dl.google.com/go/go1.23.1.linux-amd64.tar.gz
次に、インストーラファイルを展開します。
# 既存の golang ディレクトリを削除し、ディレクトリの削除に成功したら新しいバージョンの golang をインストール
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.1.linux-amd64.tar.gz
インストールが完了したら、環境変数PATH
に golang をインストールしたディレクトリパスを追加します。
# ~/.bashrc にインストール先パスを追加
export PATH=$PATH:/usr/local/go/bin
以下のコマンドで、環境変数が指定されていることを確認します。
# 環境変数が設定されているかを確認
go env
ここまで完了したら、ターミナルを再起動します。
再起動後、以下のコマンドを実行しバージョンが返ってきたらインストール成功となります。
$ go version
go version go1.23.1 linux/amd64
hello.go の実行
WSL 上に golang をインストールしたため、次に hello.go を実行します。
以下のスクリプトを作成します。ファイル実行後にhello world
が返る簡単なスクリプトです。
こちらのスクリプトを作成後、実行するディレクトリに配置します。
ファイル名:hello.go
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
次に、作業用ディレクトリに移動します。
WSL では、Windows のドライブは/mnt
ディレクトリ下にマウントされています。Cドライブは/mnt/c
としてアクセスが可能です。以下のコマンドを実行します。
cd /mnt/c/Users/{ユーザ名}/{.go ファイルが置かれたディレクトリ名}
次に、以下のコマンドで .go ファイルを実行します。
go run hello.go
hello world
が返れば成功となります。
また、GOPATH
を指定すれば永続的に作業ディレクトリを指定可能です。
export GOPATH=/mnt/c/Users/{ユーザ名}/{.go ファイルが置かれたディレクトリ名}
export PATH=$PATH:$GOPATH/bin
以上で、「Windows に WSL 環境を構築し、Helloworld.go を動かしてみたい」は以上となります。
最後に
WSL を今回触ってみて、とても便利な機能だなと思いました。
Linux を使う機会は多々あると思うので、Linux のしくみも合わせて勉強したいです。
ここまで読んでいただき、ありがとうございました!