Skip to content
/ devtool-wsl2 Public template

A development environment for WSL2

License

Notifications You must be signed in to change notification settings

naa0yama/devtool-wsl2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

devtool-WSL2

WSL2 の開発環境を自動構築するセット
以前は、 WSL2 に都度コマンドを打って環境構築していたが似たような環境が複数必要になるため自動化し環境構築にかかる時間を省力化した。

Software

  • CLI commands
    • bash
    • ca-certificates
    • curl
    • git
    • gpg-agent
    • man
    • mtr
    • nano
    • sudo
    • tcpdump
    • traceroute
    • unzip
    • vim
    • wget
Common software Latest software version
Docker Engine GitHub Tag
fish-shell GitHub Tag
asdf GitHub Tag
mame/wsl2-ssh-agent GitHub Tag
asdf Plugins asdf Plugin URL Latest software version
assh zekker6/asdf-assh GitHub Tag
aws-cli MetricMike/asdf-awscli GitHub Tag
fzf asdf-fzf GitHub Tag
ghq kajisha/asdf-ghq GitHub Tag
poetry asdf-community/asdf-poetry GitHub Tag
python danhper/asdf-python GitHub Tag
rust code-lever/asdf-rust GitHub Tag
aws-sam-cli amrox/asdf-pyapp GitHub Tag
starship gr1m0h/asdf-starship GitHub Tag
Terraform asdf-community/asdf-hashicorp GitHub Tag
Tmux aphecetche/asdf-tmux GitHub Tag
Rust Tools Latest release
dua-cli GitHub Tag
ripgrep GitHub Tag
topgrade GitHub Tag

使い方

Windows Terminal などで PowerShell を開き下記のコマンドを投入すると最新の GitHub Releases から WSL2 イメージを取得し WSL に登録します

powershell -ExecutionPolicy Unrestricted -Command "Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/naa0yama/devtool-wsl2/main/devtool.ps1' -OutFile 'devtool.ps1'; .\devtool.ps1"

フラグオプションをいくつか用意しています

  • -skipWSLImport
    • WSL へ Import を実施しません。
    • ダウンロードのみを実施し、スクリプト終了時のダウンロードフォルダークリーンアップ処理も実施しません。
  • -skipWSLDefault
    • WSL へ Import した場合に wsl --set-default <DistributionName> の実行をしません

Important

  • -ImportForce
    • 同じ tag の WSL イメージが登録されている場合、登録解除(wsl --unregister)を実施し強制的に更新します WSL イメージは削除されますので注意してください

Import 結果を確認します
dwsl2-<tag> があれば Import 出来ています。

wsl -l -v
> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Running         2
  dwsl2-8718ff1   Stopped         2
  Ubuntu          Stopped         2

実際に起動してみます。
このセクションではデフォルトに設定してないためディストリビューション指定で起動します。
起動出来ると Bash が起動します。

wsl -d dwsl2-8718ff1
user@dead-desk1:~$

asdf が使えるか確認しておきましょう。
asdf current で確認出来ます。

> asdf current
assh            2.16.0          /home/user/.tool-versions
aws-sam-cli     1.115.0         /home/user/.tool-versions
awscli          2.15.19         /home/user/.tool-versions
fzf             0.50.0          /home/user/.tool-versions
ghq             1.6.1           /home/user/.tool-versions
poetry          1.7.1           /home/user/.tool-versions
python          3.10.12         /home/user/.tool-versions
rust            stable          /home/user/.tool-versions
starship        1.18.2          /home/user/.tool-versions
terraform       1.1.3           /home/user/.tool-versions
tmux            3.4             /home/user/.tool-versions

デフォルトに設定する場合

この手順では default に設定していないためディストリビューションを指定して起動する必要があります。
手間を省くために defualt に設定すると wsl コマンドで起動してくる事になります
下記の例では dwsl2-8718ff1 を defualt に設定します。
* の付いている物が default 起動の WSL です。

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Running         2
  dwsl2-8718ff1   Stopped         2
  Ubuntu          Stopped         2

> wsl -s dwsl2-8718ff1
この操作を正しく終了しました。

> wsl -l -v
  NAME            STATE           VERSION
* dwsl2-8718ff1   Stopped         2
  Ubuntu-22.04    Running         2
  Ubuntu          Stopped         2

登録解除する場合

登録解除の場合は下記で ディストリビューションを停止してから --unregister を実施します

wsl -t dwsl2-8718ff1
wsl --unregister dwsl2-8718ff1