メインコンテンツへスキップ

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

開発環境 Windows WSL Ubuntu Git GitHub VSCode
目次

やりたいこと
#

  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 を簡単に入れることもできる

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 を簡単に入れることもできる

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] を自分のメールアドレスに変更

.gitconfig
#

[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

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

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 の場合:

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

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

lsb_release -a

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

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

やらなくてもいい

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

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

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

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

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

Git インストール
#

  • できるだけ新しいバージョンのGitにするため、ppa を設定する
sudo add-apt-repository ppa:git-core/ppa
  • Git を更新する
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 ファイルを作成し、設定を書く

.gitconfig
#

[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

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

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