Windows11 WSL Ubuntu VSCode Git GitHub 開発環境構築

WSL Ubuntu 環境構築のやり方を解説


やりたいこと

  1. Windows11 で プログラミング環境の構築
  2. Windows に Windows Subsystem for Linux (WSL) で Ubuntu を 入れる
  3. VSCode で Ubuntu に接続
  4. リポジトリ管理のために Git を入れる
  5. Ubuntu から GitHub の認証を通し、使えるようにする

環境情報

環境 バージョン
OS Windows 11 Pro 23H2
OS ビルド 22631.3447
Git 2.44.0
WSL 2.1.5.0
Ubuntu 22.04.4 LTS
Windows Terminal 1.19.10821.0
Visual Studio Code 1.88.1

※ 2024年5月現在


Windows Terminal

  • Windows Terminalアプリで PowerShell の起動確認
    • ない場合は Microsoft Store で入手

Visual Studio Code

VSCode 本体のインストール:

  • Visual Studio Code公式サイトからインストーラをダウンロード
  • VSCode のインストール
    • オプションはデフォルトのまま
  • VSCode をスタートやタスクバーにピン留め(任意)

拡張機能のインストール:

  • Japanese Language Pack for Visual Studio Code
    • 日本語化のため
  • WSL
    • WSL 環境に接続するため

補足:

PowerShell から winget を使い、VSCode を簡単に入れることもできる

1
winget install --id Microsoft.VisualStudioCode -e --source winget

しかし、この方法だと以下の2点の問題が発生するので、わざわざインストーラから VSCode を入れている

  1. インストールウィザードで行うオプションの細かい選択ができない
  2. 標準の言語設定が英語になるので、後で日本語化設定をする手間が発生する

Git for Windows

実質的に、Git Credential Manager (GCM, Git資格情報マネージャー) を使うためだけに、Windows 側に Git を入れる

WSL Ubuntu に直接 GCM をインストールすることもできるが、設定が面倒なので Microsoft 公式で推奨している Git for Windows を使う方式にする


ダウンロード


インストールウィザード

Select Components

  • Windows Explorer integration
    右クリックのコンテキストメニューに Git が追加される
    • 個人的には必要ないので OFF
    • 任意で変更
  • Check dialy for Git for Windows updates
    勝手にアップデートしてくれる設定
    • ON 推奨
    • 便利なので
  • Add a Git Bash Profile to Windows Terminal
    Windwos Terminal に Git Bash を追加してくれる
    • ON 推奨
    • 自分で設定するのは面倒なので

Choosing the default editor used by Git
Git のデフォルトエディタを選択

  • Use Visual Studio Code as Git’s default editor
    VSCode をデフォルトエディタとして選択
    • ここで選択するため、先に VSCode をインストールした

Adjusting the name of the initial branch in new repository
git init で新しいリポジトリ作成時の初期ブランチ名について

  • Override the default branch name for new repository
    新規リポジトリのデフォルトブランチ名を上書きする
    • 新しいリポジトリのデフォルトブランチ名を main にする
    • 政治的なあれこれで 2021 年くらいから master から変更される流れになったらしい

Adjusting your PATH environment
PATH環境について

  • Git from the command line and also from 3rd-party software
    • 推奨
    • PATH に最小限の Git ラッパーだけを追加
    • Git Bash、コマンドプロンプト、Windows PowerShell などから Git を使えるようにする

Choosing the SSH executable
使用する SSH を選択

  • Use bundled OpenSSH
    • Git に付属の ssh.exe を使用

Choosint HTTPS transport backend
Git の HTTPS 接続に使う SSL/TLS ライブラリ

  • Use the OpenSSL library
    サーバー証明書は、ca-bundle.crt ファイルを使って検証

Configuring the line ending conversations
改行文字の設定

  • Checkout as-is, commit as-is
    • テキストファイルのチェックアウトやコミットの際に、改行文字の変換を行わない
    • git config における core.autocrlf false の設定

Configuring the terminal emulator to use with Git Bash
Git Bash で使う端末エミュレータの設定

  • Use MinTTY (the default terminal of MSYS2)
    MinTTY(MSYS2のデフォルト端末)を使う
    • Windows Terminal を使うので、正味なんでもいい

Choose the default behavior of git pull
git pull のデフォルトの動作を選択する

  • Only ever fast-forward
    Fast-forward のみ
    • これは git pull の標準的な動作

Choose a credential helper
資格情報ヘルパーの選択


Configuring extra options
追加オプションの設定

  • Enable file system caching
    ファイルシステムのキャッシュを有効にする
  • その他、デフォルトのまま

補足:

PowerShell から winget を使い、Git for Windows を簡単に入れることもできる

1
winget install --id Git.Git -e --source winget

しかし、この方法だと以下の2点の問題が発生するので、わざわざインストーラから Git を入れている

  1. インストールウィザードで行うオプションの細かい選択ができない
  2. 標準の言語設定が英語になるので、後で日本語化設定をする手間が発生する

.gitconfig の設定

Git 環境の設定を行う

参考:Git - 最初のGitの構成

  • C:\Users\[username]\.gitconfig ファイルを作成
    ※ Gitのインストールで、エディタの指定のために
     自動で.gitconfigファイルは既に作成されている
  • 設定を記入
  • Gitユーザ名[username] を自分の Git ユーザ名に変更
  • コミットメールアドレス[email] を自分のメールアドレスに変更
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[core]
    editor = \"C:\\Users\\[username]\\AppData\\Local\\Programs\\Microsoft VS Code\\bin\\code\" --wait
[user]
    name = [username]
    email = [email]
[pull]
    ff = only
    rebase = false
[core]
    eol = lf
    ignorecase = false
    quotepath = false
[init]
    defaultBranch = main
[fetch]
    prune = true
[rebase]
    autosquash = true

コマンドで設定する場合:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
git config --global user.name [username]
git config --global user.email [email]
git config --global pull.ff only
git config --global pull.rebase false
git config --global core.eol lf
git config --global core.ignorecase false
git config --global core.quotepath false
git config --global init.defaultBranch main
git config --global fetch.prune true
git config --global rebase.autosquash true

WSL

WSL2 (Windows Subsystem for Linux version 2) のインストールを行う

前提条件:

  • Windows 10 2004 以上(ビルド19041以上)
  • Windows 11
  • 前提条件を満たすWindowsはすべてサポート内のため、通常は問題ないはず

手順:

  • PowerShell を管理者モードで開く
  • wsl --install コマンドを入力
  • パソコンを再起動

補足:

  • Home 版でも WSL は使える
  • デフォルトのディストリビューション:Ubuntu
  • Hyper-V などの仮想化環境設定は自動で有効になる\
    • この機能を有効にするため、Windowsの再起動が必要
  • Windows Terminal に Ubuntu が自動で登録される

参考:WSL のインストール | Microsoft Learn


Ubuntu

Ubuntuの設定


初期設定

Ubuntu の初回起動時には、ユーザを作成する必要がある

手順:

  • Microsoft Store から Ubuntu を入れる
    • 通常は wsl --install コマンドで一緒に Ubuntu も入る
  • Windows Terminal から Ubuntu を初回起動
    • 通常は wsl --install コマンドで同時に進行する
  • ユーザ名を入力
  • パスワードを入力

参考:WSL 開発環境を設定する | Microsoft Learn


補足:

  • 個人的には、セキュリティが求められるところではないと思っているので
    ユーザー名とパスワードは短い文字列にしている
  • 私的設定
    • username: az
    • password: a

パッケージ更新

※ これ以降は、VSCode で WSL Ubuntu を開いてもいい

  • パッケージを更新およびアップグレードして、ディストリビューションを最新の状態にする

Ubuntu, Debian の場合:

1
sudo apt update && sudo apt upgrade -y
  • Ubuntuのバージョンを確認

Ubuntu バージョン確認コマンド:

1
lsb_release -a

sudo でパスワード入力を不要にする(任意)

sudo コマンドを使った際に、パスワードが「a」の一文字でも面倒だから、
パスワード入力をしなくてもいいようにする

やらなくてもいい

  • sudo visudo コマンドを実行
1
sudo visudo

/etc/sudoers を編集する GNU nano エディタが起動する

  • これ↓をファイルの一番下に書く
1
[username] ALL=(ALL:ALL) NOPASSWD: ALL

必ず %sudoより下に書くこと[username] は Ubuntu のユーザネームに置き換え

  • ctrs + s で上書き保存
  • ctrs + x で閉じる

Git インストール

  • できるだけ新しいバージョンのGitにするため、ppa を設定する
1
sudo add-apt-repository ppa:git-core/ppa
  • Git を更新する
1
sudo apt update; sudo apt install git

参考:Git - Download for Linux and Unix


Git Credential Manager

Git for Windows の Git Credential Manager で、資格情報を登録できるようにされている

WSL と Windows ホストの間で資格情報と設定を共有するために、.gitconfigに設定を追加する

.gitconfigは、Windows と WSL 内で引き継ぎは行われないので、WSL Ubuntu のホームに .gitconfig ファイルを作成し、設定を書く

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[user]
    name = [username]
    email = [email]
[pull]
    ff = only
    rebase = false
[core]
    eol = lf
    ignorecase = false
    quotepath = false
[init]
    defaultBranch = main
[fetch]
    prune = true
[rebase]
    autosquash = true
[credential]
	helper = /mnt/c/Program\\ Files/Git/mingw64/bin/git-credential-manager.exe

コマンドで設定する場合:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
git config --global user.name "[username]"
git config --global user.email [email]
git config --global pull.ff only
git config --global pull.rebase false
git config --global core.eol lf
git config --global core.ignorecase false
git config --global core.quotepath false
git config --global init.defaultBranch main
git config --global fetch.prune true
git config --global rebase.autosquash true
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

参考:WSL で Git の使用を開始する | Microsoft Learn


GitHub

GitHubの設定


Git 資格情報を登録

  • 既定のブラウザで GitHub にサインインした状態にする
  • git clone などのコマンドでGitHubに接続
    • GitHub のリポジトリに初めて接続したとき、
      Git Credential Manager による認証が行われる
  • ブラウザで認証する
  • Windows 資格情報マネージャで確認

GitHubアカウントでVSCodeの設定を同期(任意)

GitHubアカウントを使って VSCode の設定を他の PC と同期する

設定はクラウドに保存されるため、バックアップとしても使える

  • VSCode 左下のアイコンから「サインインして設定を同期する」を選択
  • 同期したい設定を選択
  • 同期したアカウントを選択 -> GitHub

参考:Settings Sync in Visual Studio Code