Windows プログラミング開発環境の構築方法 (WSL2 + docker + VSCode + GitHub CLI + Terminal + PowerToys)

2021年1月2日Development

Windows 開発環境の構成

[OS] Windows で大丈夫?

プログラミング開発環境としては Windows よりも Mac の方が人気が高いです。

人気の理由は、

  • 本番環境は Linux であることが多く、Mac が Unix ベースであるため開発環境と本番環境が近いことから問題が発生しずらい
  • コマンド操作も bash や zsh などであるため、普段から Linux コマンドになれることができる
  • プログラミング開発に必要な環境が最初からある程度整っている
  • Mac を利用している開発者が多いためノウハウが収集しやすい

などではないかと思います。

ですが、Windows でも WSL2 が登場してからは Ubuntu などの Linux OS の環境を簡単に利用することができるようになりましたので、環境面の問題で特に Windows で開発に困るということは少なくなってきていると感じています。

 

[コマンド操作] bash (Windows Terminal)

コマンド操作も cmd や powershell はあまり利用せず、WSL2(Ubuntu) や docker コンテナ内で bash を利用することがほとんどです。

 

[エディタ] Visual Studio Code (VSCode)

エディターについても Visual Studio Code (VSCode)を利用している場合は WSL2 に対応していますので問題なしです。

 

[仮想環境] docker

開発環境構築の際には各ソフトウェアを本番環境に合わせるために仮想環境を利用しますが、最近では Vagrant(VirtualBox) より docker が利用されることが多くなってきていますので、「WSL2 の Ubuntu で docker を利用する方法」についてもまとめました。

docker については「Docker Desktop for Windows」ではなく Linux 向けの docker を WSL2 にインストールして利用する方法について説明します。

理由は、Linux 用の docker や docker-compose のインストール手順や操作方法などの学習につながるためです。

 

[ソース管理] git / GitHub CLI

git についても開発を WSL2(Ubuntu)で行うため Linux 用の git や GitHub CLI を利用するようにします。

 

インストールするソフトウェア

まだまだ、Windows は Mac に比べて開発環境の構築に一手間かかることには変わりないですが、一度構築してしまえばあとは開発に専念できますので、「Windows で開発環境を構築してみたい」と考えている方はお試しください。

開発環境の構成をまとめると次の通りです。

  • Windows10 Home
  • WSL2 (Ubuntu)
  • docker / docer-compose
  • Visual Studio Code (VSCode)
  • git / GitHub CLI
  • Windows Terminal
  • Microsoft PowerToys

WSL2 (Ubuntu)のインストール

WSL2 が正式対応されるまでは、手順が複雑でしたが正式対応後は Microsoft の「Windows 10 用 Windows Subsystem for Linux のインストール ガイド」に沿ってインストールを進めるだけで OK です。

簡単インストール/手動インストールの2パターンのインストール方法がありますのが、「Windows Insider Program」に参加している方は「簡単インストール」がおすすめです。

 

簡単インストール

Windows Insider Program に参加

Windowsキーをクリックしの[設定]-[更新とセキュリティ]-[Windows Insider Program]を開きます。

以下の画面はプログラムに参加後のものですが、「開始する」ボタンをクリックしすすめると、「ファスト」や「スロー」を選択する画面が表示されますが、特別な理由がない場合は「スロー(推奨)」を選択しておきましょう。

 

Windows Update で最新化

Windowsキーをクリックしの[設定]-[更新とセキュリティ]-[Windows Update]を開きます。

更新プログラムのチェックを行い、最新の状態にしてください。

 

管理者として Power Shell を開き以下のコマンドを実行

wsl --install

Ubuntu が自動的にインストールされます

 

手動インストール

Windows Insider Programに参加したくない場合は、手動でインストールすることもできます。

 

Windows Update で最新化

Windowsキーをクリックしの[設定]-[更新とセキュリティ]-[Windows Update]を開きます。

更新プログラムのチェックを行い、最新の状態にしてください。

 

WSL2 有効化

管理者として Power Shell を開き以下のコマンドを実行

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

 

PC再起動

 

WSL2 用 Linux カーネルの更新

「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」をダウンロードしインストールする

 

WSL 2 を既定のバージョンとして設定する

Power Shell を開き以下のコマンドを実行

wsl --set-default-version 2

 

Microsoft Store で Ubuntu をインストール

point

systemctl コマンドを利用したいため Ubuntu をインストールしてください

WSL2(Ubuntu) の設定

ユーザ名とパスワードを設定する

Ubuntuのインストールが完了するとユーザ名とパスワードの入力が求められます。

Ubuntuで利用するユーザ名とパスワードを設定しましょう。

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not neet to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: xxxxxx
Enter new UNIX password:
Retype new UNIX password:
Point

ユーザー名とパスワードはWindowsと同じである必要はありません。

初回はインストール作業に時間がかかりますが、2回目移行は数秒で起動されます。

パッケージのアップデート

Ubuntuの各パッケージを最新化しておきましょう。

sudo apt update
sudo apt upgrade

環境を日本語に設定する(任意)

Ubuntu環境で日本語のマニュアルを表示したい場合には以下のコマンドを実行しましょう。

sudo apt install language-pack-ja
sudo update-locale LANG=ja_JP.UTF8
sudo apt install manpages-ja

WSL2 で systemctl を利用できるようにする

WSL2で構築したUbuntuではsystemctlを利用してサービスの起動や停止をすることができません。

理由は、systemdがPID1で稼働していないためです。

systemctlを利用できるようにする方法については以下の記事にまとめました。

WSL2(Ubuntu)に docker をインストール

「docker の公式サイトの Ubuntu へのインストール手順」の手順に沿って docker をインストール

point

Ubuntu 用のコマンドを実行する

実行するコマンドだけをピックアップすると以下の通りです。

docker以外に必要なソフトをインストール

$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

 

dockerのofficial GPG keyを追加

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo apt-key fingerprint 0EBFCD88

 

インストール対象をstable(安定したバージョン)に設定

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

 

docker-ceをインストール

 $ sudo apt-get update
 $ sudo apt-get install docker-ce

WSL2(Ubuntu)に docker-compose をインストール

「docker の公式サイトの Linux へのインストール手順」の手順に沿って docker-compose をインストール

point

Linux 用のコマンドを実行する

実行するコマンドだけをピックアップすると以下の通りです。

curlコマンドで取得

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 

実行権限を付与

$ sudo chmod +x /usr/local/bin/docker-compose

 

バージョンを確認

$ docker-compose --version
docker-compose version 1.27.4, build 1110ad01

Visual Studio Code(VSCode)のインストールとWSL2用の設定

「Windows Subsystem for Linux で Visual Studio Code の使用を開始する」の手順に沿ってインストールします。

 

VS Code のインストール

「Download Visual Studio Code」のページかWindows版をダウンロードしインストールする

 

リモート WSL 拡張機能(Remote Development)をインストール

VS Codeを起動し、右端の拡張機能ボタンをクリックし、「remote development」で検索するとヒットしますので、インストールボタンをクリックしてインストールしましょう。

 

WSL2(Ubuntu)に ca 証明書追加

sudo apt-get install wget ca-certificates

 

VS Codeの起動確認

適当なディレクトリで以下のコマンドを実行して VSCode が起動すれば OK です。

code .

 

これで、WSL2(Ubuntu)で Visual Studio Code を利用できる準備が整いました。

git のインストール

git は WSL2 の Ubuntu に既にインストールされていますので、必要に応じて upgrade するぐらいです。

以下のコマンドを実行しgitのバージョンが表示されていればOKです。

$ git --version
git version 2.25.1

デフォルトではWSL2(Ubuntu)でgit操作をする際にチェックアウト中のブランチ名が表示されません。

操作中のブランチ名を表示する方法については以下の記事を参考に設定してください。

GitHub CLI のインストール

git のリモートリポジトリとして GitHub を利用する場合、リポジトリの作成やプルリクエストなどをコマンドラインで操作する方が効率よく開発作業を行うことができます。

インストール方法と簡単な利用方法については以下の記事をご覧ください。

Windows Terminal のインストール

Microsoft Store で Windows Terminal をインストール

Windows Terminal は Microsoft から 2020 年にリリースされた新しいターミナルソフトです。

Windows は標準でコマンドプロンプト、Powershell、WSL など複数のコマンドラインツールやシェルがが存在しています。
また、サードパーティー製を含めるとその数は更に多くなり、複数のウィンドウを開いて操作していると管理が煩雑になってしまいます。

Windows Terminal を導入することで、統合的に設定やペイン(ウィンドウ)を管理することができるようになります。

Windows Terminal の主な特徴としては、次の通りです。

  • 各種コマンドラインツールやシェルをタブ化できる
  • 各種コマンドラインツールやシェルのペインをウィンドウ内で分割して表示できる
  • フォント、背景などの見た目をシェル単位またはユーザ単位にカスタマイズできる
  • ショートカットキーをカスタマイズできる
  • UTF-8 がサポートされている

 

Windows Terminalのインストール方法、基本操作とカスタマイズ方法については以下の記事をご覧ください。

Microsoft PowerToys のインストール

Windows をより便利にするためにカスタマイズする Microsoft 公式のツールです。
2021-01-02 時点ではまだプレビュー版ですが、色々と便利機能が備わっています。

インストール方法は、GitHub の以下のリンクから Release ページの「PowerToysSetup-x.x.x-x64.exe」をダウンロードしインストールします。

GitHub の Microsoft PowerToys ページ

 

設定できる機能

  • Color Picker
  • FancyZones
  • エクスプローラー
  • Image Resizer
  • Keybard Manager
  • PowerRename
  • PowerToys Run
  • Shortcut Guide

Development

Posted by snow