やりたいこと #
- Windows11 で プログラミング環境の構築
- Windows に Windows Subsystem for Linux (WSL) で Ubuntu を 入れる
- VSCode で Ubuntu に接続
- リポジトリ管理のために Git を入れる
- 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 を入れている
- インストールウィザードで行うオプションの細かい選択ができない
- 標準の言語設定が英語になるので、後で日本語化設定をする手間が発生する
Git for Windows #
実質的に、Git Credential Manager (GCM, Git資格情報マネージャー) を使うためだけに、Windows 側に Git を入れる
WSL Ubuntu に直接 GCM をインストールすることもできるが、設定が面倒なので Microsoft 公式で推奨している Git for Windows を使う方式にする
ダウンロード #
- Git公式サイトから、64-bit Git for Windows Setupをダウンロード
インストールウィザード #
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
資格情報ヘルパーの選択
- Git Credential Manager
Git資格情報マネージャー
Configuring extra options
追加オプションの設定
- Enable file system caching
ファイルシステムのキャッシュを有効にする - その他、デフォルトのまま
補足:
PowerShell から winget を使い、Git for Windows を簡単に入れることもできる
winget install --id Git.Git -e --source winget
しかし、この方法だと以下の2点の問題が発生するので、 わざわざインストーラから Git を入れている
- インストールウィザードで行うオプションの細かい選択ができない
- 標準の言語設定が英語になるので、後で日本語化設定をする手間が発生する
.gitconfig
の設定
#
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
ファイルを作成し、設定を書く
/home/[username]/.gitconfig
ファイルを作成- 設定を記入
- Gitユーザ名:
[username]
を自分の Git ユーザ名に変更 - コミットメールアドレス:
[email]
を自分のメールアドレスに変更
.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 による認証が行われる
- GitHub のリポジトリに初めて接続したとき、
- ブラウザで認証する
- Windows 資格情報マネージャで確認
GitHubアカウントでVSCodeの設定を同期(任意) #
GitHubアカウントを使って VSCode の設定を他の PC と同期する
設定はクラウドに保存されるため、バックアップとしても使える
- VSCode 左下のアイコンから「サインインして設定を同期する」を選択
- 同期したい設定を選択
- 同期したアカウントを選択 -> GitHub