🐥

開発用端末を構築するための作業メモ<Windows編>

2024/01/03に公開

Windows 11で開発用端末の構築したときの作業メモ。

JDKをセットアップする

  1. インストールフォルダを用意
    %UserProfile%\.jdks フォルダを作成(作成済みの場合はスキップ)

    • 好きなフォルダで良いと思います。
    • 以降、%UserProfile%\.jdks前提で進めます。

  2. Open JDKをダウンロードする
    Open JDKに何を使用するかは大人の事情で決まるのでしょうか。
    筆者は、IntelliJでダウンロードすることが多いです。
    Microsoft Build of OpenJDKはIntelliJでダウンロードの選択肢が出てこないので、リンク先を書いておきます

    • そのまま解凍すると何処のJDKかわからないため、フォルダ名は変えたほうがよいでしょう。
      例: %UserProfile%\.jdks\ms-jdk-17.0.9+8

https://learn.microsoft.com/en-us/java/openjdk/download

  1. 環境変数を設定する
    • 新規追加 or 更新
      JAVA_HOME: %UserProfile%\.jdks\ms-jdk-17.0.9+8

    • 必要に応じて設定追加
      PATH: %UserProfile%\.jdks\ms-jdk-17.0.9+8\bin
      ※稀に必要な場合があります。筆者は設定せずに必要なときにその場しのぎしています。


Gradleをセットアップする

  1. インストールフォルダを用意
    フォルダを2つ作成します。

    • gradle本体用
      C:\DevTools\gradle
    • gradle repository用
      C:\DevTools\gradle\repositories
  2. Gradleをダウンロードする
    公式サイトからbinary-onlyのモジュールをダウンロードします。
    バージョンは大人の話し合いできまることが多いでしょう。

https://gradle.org/releases/

  1. ダウンロードしたモジュールを解凍してフォルダに配置する
    執筆時点で筆者はv8.0.2を使っており、フォルダパスとしては、以下のようにしています。
    C:\DevTools\gradle\gradle-8.4

  2. 環境変数を設定する

    • 新規追加 or 上書き
      GRADLE_USER_HOME: C:\DevTools\gradle\repositories
    • 設定追加
      PATH: C:\DevTools\gradle\gradle-8.4\bin

3 nodejsをインストールする

Node.jsを複数バージョン使用することもあるので、nvm for windowsで管理する

  1. nvm for windowsをgithubからダウンロードする
    特に事情がなければ、nvm-setup.exeで。

https://github.com/coreybutler/nvm-windows/releases

  1. nvm for windowsをインストールする

    • nvmのインストールフォルダ
      C:\DevTools\nvm
    • nodejsのシンボリックパス
      C:\DevTools\nodejs
  2. Node.jsをインストールする

    nvm version
    nvm list available
    nvm install 18.18.2
    nvm list
    nvm use 18.18.2
    node -v
    

4 gitの設定を行う

  1. git for windowsをダウンロードする

https://gitforwindows.org/

  1. git for windowsをインストールする

    • オプションは好みで。筆者は基本的にデフォルト値を使用
    • インストールフォルダ
      C:\DevTools\Git
    • Configuring the line ending conversions
      ☑ Checkout as-is, commit Unix line endings
  2. gitの設定をする

    • ユーザー設定
    # %UserProfile%\.gitconfig   が更新される
    
    git config --global user.name "ユーザー名"
    git config --global user.email "メールアドレス"
    
    git config --list
    
  3. git 接続設定: 例 github用

    • ssh key設定
    > cd %UserProfile%
    > rem mkdir .ssh
    > cd .ssh
    > mkdir github
    
    > ssh-keygen -t rsa -b 4096 -C ""
      # Enter file in which to save the key
      #  -> %UserProfile%\.ssh\github\id_rsa
      #  ※ ssh-keygenでは、%UserProfile%は展開されませんが、記載の都合上%UserProfile%としています(書き換えが必要)。
    
    • %UserProfile%.sshフォルダにconfig ファイルを作成する
      ファイルの内容は以下の通り。
    Host github.com
      HostName github.com
      IdentityFile ~/.ssh/github/id_rsa
      User git
    
    • githubにサインインしてssh keyの公開鍵を登録

    • githubに接続

    ssh -T git@github.com
    # Hi xxxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
    

5 Microsoft AzureのCLIなどをインストールする

CLI関連はAzureのドキュメントの記載の通り。

  1. Azure Powershellをインストール

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
    Install-Module -Name Az -Repository PSGallery -Force
    
    # Update
    Update-Module -Name Az -Force
    

https://learn.microsoft.com/ja-jp/powershell/azure/install-azps-windows?view=azps-9.7.1&tabs=powershell&pivots=windows-psgallery

  1. Azure CLIをインストール

    管理者権限で実行する

    $ProgressPreference = 'SilentlyContinue';
    # 32bit
    # Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi;
    # 64bit
    Invoke-WebRequest -Uri https://aka.ms/installazurecliwindowsx64 -OutFile .\AzureCLI.msi;
    Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; Remove-Item .\AzureCLI.msi
    
    # Update
    az upgrade
    

https://learn.microsoft.com/ja-jp/cli/azure/install-azure-cli-windows?tabs=azure-cli

  1. Bicep: Azure Powershell用をインストール

    # Create the install folder
    $installPath = "$env:USERPROFILE\.bicep"
    $installDir = New-Item -ItemType Directory -Path $installPath -Force
    $installDir.Attributes += 'Hidden'
    # Fetch the latest Bicep CLI binary
    (New-Object Net.WebClient).DownloadFile("https://github.com/Azure/bicep/releases/latest/download/bicep-win-x64.exe", "$installPath\bicep.exe")
    # Add bicep to your PATH
    $currentPath = (Get-Item -path "HKCU:\Environment" ).GetValue('Path', '', 'DoNotExpandEnvironmentNames')
    if (-not $currentPath.Contains("%USERPROFILE%\.bicep")) { setx PATH ($currentPath + ";%USERPROFILE%\.bicep") }
    if (-not $env:path.Contains($installPath)) { $env:path += ";$installPath" }
    # Verify you can now access the 'bicep' command.
    bicep --help
    # Done!
    

https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/bicep/install#windows

  1. Bicep: Azure CLI用をインストール

    # Install / Update
    az bicep upgrade
    
    az bicep version
    

https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/bicep/install#azure-cli

  1. Storage Explorer
    以下のサイトからOSを選択してインストーラをダウンロード、インストールする。

https://azure.microsoft.com/ja-jp/products/storage/storage-explorer

6. WSL2をインストールする

  1. インストールをドキュメントの記載を参考に進める

https://learn.microsoft.com/ja-jp/windows/wsl/install-manual

  1. Windowsの役割と機能

    • Windows Client(Win10) : [プログラムと機能] -> [Windowsの機能の有効化または無効化]

      • Linux用Windowsサブシステム
      • 仮想マシン プラットフォーム
    • powershellでインストールする場合は、以下を実行。

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
    
    • PCを再起動する
  2. Linux カーネル更新プログラム パッケージをインストール
    更新プログラムをダウンロードしてインストールする。

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

  1. WSL2をを既定のバージョンとして設定する

    wsl --update
    wsl --set-default-version 2
    
  2. WSL Linuxディストリビューションをダウンロードする

https://learn.microsoft.com/ja-jp/windows/wsl/install-manual#downloading-distributions

  1. ダウンロードしたAppxまたはAppxBundleファイルをダブルクリックしてLinuxディストリビューションをインストールするする。

  2. 補足:Hyper-VのVMでWSL2を使用する場合
    VMを停止した状態で、ホストOSで以下を実行する

    Get-ExecutionPolicy
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
    $vmName = "VM Name"
    Set-VMProcessor -VMName $vmName -ExposeVirtualizationExtensions $true
    

7. WSLを複数管理する場合/WSLのフォルダを変更

以下、Ubuntu 22.04を前提とする。

  1. WSLの名前を確認
wsl --list
  1. WSLを停止する
wsl -t Ubuntu
  1. WSLをエクスポートする
wsl --export Ubuntu e:\wsl\Ubuntu-22.04.tar
  1. WSLをインポートする
wsl --import Ubuntu-22.04 e:\wsl\Ubuntu-22.04 e:\wsl\Ubuntu-22.04.tar
  1. WSLの登録を解除(必要に応じて)
wsl --unregister Ubuntu
  1. WSL/Userを指定してlogin
wsl -d Ubuntu-22.04 -u <username>
  1. WSL.confの変更
  • systemdを有効化
  • Ubuntuのデフォルトユーザー変更
    VSCodeでWSLに接続した際にユーザーがrootになってしまった場合は、デフォルトユーザーを変更する

wsl.confを作成する

sudo nano /etc/wsl.conf
  • wsl.conf
[boot]
systemd=true

[user]
default=<ユーザー名>

WSLを再起動する

wsl -t Ubuntu-22.04

Discussion