【連載】WSL2、Visual Studio Code、DockerでグッとよくなるWindows開発環境 〜 その1:まずは概要 〜

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

こんにちは、サイオステクノロジー武井(Twitter:@noriyukitakei)です。今回は、第4回シリーズで、WSL2、Visual Studio Code、Docker、Windows Terminalなどの最新技術を用いて、Windows開発環境をグッとよくしましょうっていうお話をします。

  1. 今回はこちらその1:まずは概要
  2. その2:WSL1&2のしくみ
  3. その3:WSL2、Windows Terminalで改善!!
  4. その4:Visual Studio Code、Dockerで改善!!

※ 本記事は技術評論社出版の「WEB+DB PRESS」Vol.117(詳細はこちら)に私が寄稿した「WSL 2、Docker、Visual Studio Code[最新]Windows開発環境」の記事をベースとしております。是非、WEB+DB PRESSの方も合わせてご覧ください!!

Windowsでの開発の問題点

Windowsは、非常に多くのユーザーに利用されており、インターネットの黎明期から数多くのエンジニアに支えられ親しまれ、長きに渡って使われてきたOSであるということは、周知の事実かと思います。

初心者でも馴染みやすい画面構成、直感的なインターフェース、音楽や動画などのメディア系ファイルとの相性のよさなど数多くのメリットがあります。

そして、それはアプリケーションを開発するエンジニアにとっても同様です。PerlによるCGIが全盛期だった1990年代後半、Webアプリケーションに特化したPHPなどの言語が台頭した2000年代、その後もオブジェクト指向の代表であるJava、Java ScriptをベースとしたNode.js、昨今隆盛の極みであるPythonやGoなど、様々な言語を開発するエンジニア達に、いつの時代も長きに渡って利用されてきたOS、それがWindowsです。

Linuxにもvimやemacsという非常に強力なエディタがあります。その一方で、初学者にフレンドリーでありデバッグなどの機能が強力なEclipseやVisual Studioシリーズといった、Windows上で動作するIDEもアプリケーション開発を支える有用なツールの一つであることは間違いありませんし、たくさんのエンジニアに利用されてきました。

しかしながら、Windowsによる開発はメリットばかりではありませんでした。

アプリケーションの実行基盤は、その安定性で抜群の実績を誇るCentOSやDebianなどのLinux系OSであることが多く、開発環境はWindowsなのに実行基盤はLinuxという「開発環境と実行基盤の差異」によって、多くのWindowsエンジニアたちを苦しめてきました。

Windowsで開発したPHPをLinux上で実行したら、アップロードしたファイルが文字化けした、ライブラリのバージョンの差異によって想定しない動きをしたなどといった経験は、「Windowsエンジニアあるある」の一つかと思います。

他にもWindowsを利用した開発の問題点はいくつかあります。

本記事では、Windows Subsystem for Linux、Windows Terminal、Visual Studio Code、Dockerなどの最新テクノロジーを駆使し、先に説明したWindowsによる開発における問題点を克服、そして多くのエンジニアに慣れ親しまれたGUIを持つWindowsと、アプリケーション実行基盤としてその安定性で実績のあるLinux系OSを融合した理想的な開発環境を手に入れるためのノウハウをご教示いたします!!

Windowsによる開発の歴史

最新テクノロジーを駆使した解決方法をご教示する前に、まず、Windowsによる開発の歴史を簡単に振り返りながら、Windowsによる開発の問題がいかにして生まれたかを説明します。

一つの開発環境を共有

まだ仮想環境などといったテクノロジーが存在しないような、Webアプリケーション開発黎明期は、Windows上のエディタで作成したコードをLinux上のサーバーにftpなどでアップロードして、都度、動作確認をしていました。想像に難くないとは思いますが、この方法ですと、エンジニア全員で同じ開発環境を保有するので、開発環境をなるべく壊さないように現状維持しなければなりません。チャレンジングなコードをテストしてみよう!!というのはご法度に近いものがありました。

Windows上に開発に必要なミドルウェアを構築

しばらくすると、アプリケーション開発に必要なミドルウェア(ApacheやMySQLなど)をローカルのWindows上で動かして開発するという手法が登場しました。著名なところで言えばXAMPP(PHP、Apache、MySQLをワンセットでWidnows上にインストールする開発環境)です。これであれば、一つの開発環境をみんなの顔色を伺いながら恐る恐る触る必要もありません。ただし、この方法では、先程説明した「開発環境と実行基盤の差異」が生じます。Windowsで開発したアプリケーションをLinux上に稼働させると文字コードやライブラリのバージョンの差異などから思いもよらぬ動作をするときがあります。

仮想環境によるアプローチ

そこで、仮想環境という新たなテクノロジーが登場しました。仮想環境は、OSの中にもう一つのOSをエミュレートする技術です。Windowsの中にLinuxの仮想環境を構築して開発するという手法が取られるようになりました。先の問題はこれで解決はしますが、この場合、Windows上で作成したプログラムをどのようにして仮想環境上のLinuxに転送するかが問題となります。ftp、scp、smbといった様々な手法がありますが、どれも利用できるようになるまでに必要なミドルウェアのインストール、設定などひと手間必要です。

このように、Windowsの開発環境というのは、その利便性も多いですが、いくつかの問題を抱えながら、現在に至るというのがご理解いただけたかと思います。

Windowsによる開発の改善方法

「開発環境と実行基盤の差異」によって生じる実行結果の違いが、Windowsにおける開発の大きな課題であるというのはご理解いただけたかと思います。では、どのように解決していけばよいでしょうか?その答えは以下の3つのテクノロジーにあります。

  • Windows Subsystem for Linux
    Windowsの中でLinuxを実行できるテクノロジーです。Virtual Boxなどの仮想環境に比べて高速に起動、相互のファイルアクセスなどWindowsとの親和性が高いのが特徴です。

  • Windows Terminal
    PowerShell、コマンドプロンプト、Windows Subsystem for Linuxといった複数のコマンドラインを一つの統合したターミナル環境で操作できます。

  • Visual Studio Code
    マイクロソフトによって開発され、Windows、Mac、Linuxなど様々な環境で動作します。また、動作も軽量で、プラグインによって自由に機能拡張できるのが特徴です。

これらのテクノロジーが、いかにWindowsにおける開発の問題を改善していくかを次章よりご説明いたします。ここで、次章からの説明を簡略化するために、基本的なツールのインストールを本章で済ませておきます。

本記事でご紹介する環境の前提条件として、Windows 10 Homeであり、かつWindows Insider Preview Build 19041.84であることが必須です。その環境の導入方法については、割愛させて頂きます。

環境整備の前準備

Windows Subsystem for Linuxのインストール

Windowsの左下の検索ボックスに「powershell」と入力すると、メニューの中に「Windows PowerShell」が表示されます。それを右クリックして、「管理者として実行」をクリックして下さい。 


図1 WSLのインストール その1

 

PowerShellのWindowが表示されるので、以下のコマンドを実行して下さい。再起動の有無を聞かれますので、Yを入力し、エンターを押して下さい。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6
PS C:\Windows\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
この操作を完了するために、今すぐコンピューターを再起動しますか?
[Y] Yes  [N] No  [?] ヘルプ (既定値は "Y"):

 

次に、Windowsの左下の検索ボックスに「microsoft store」と入力すると、メニューの中に「Microsoft Store」が表示されますので、それをクリックして下さい。


図2 WSLのインストール その2

 

画面上部のテキストボックスに「wsl」と入力してエンターを押して下さい。

 

 図3 WSLのインストール その3

 

「Ubuntu 18.04LTS」をクリックして下さい。 


図4 WSLのインストール その4

 

「Get」をクリックして下さい。

 

 図5 WSLのインストール その5

 

「No, thanks」をクリックして下さい。 

図6 WSLのインストール その6

 

下図のようにプログレスバーが表示されてインストールが始まります。

 

 図7 WSLのインストール その7

 

ダウンロードが完了すると以下のようになります。 

図8 WSLのインストール その8

Windows Terminalのインストール

Windows Subsystem for Linuxのインストールと同様にMicrosoft Storeを起動して、以下のように「windows terminal」を入力します。「Windows Terminal (Preview)」と表示されるのでクリックします。 


図8 Windows Terminalのインストール その1

 

後はWindows Subsystem for Linuxのインストールと同様の手順を実施すればインストールは完了します。 

図9 Windows Terminalのインストール その2

Visual Studio Codeのインストール

以下のURLにアクセスし、Windows10用のインストーラーをダウンロードして下さい。ウィザードに従うだけで簡単にインストール出来ます。

https://code.visualstudio.com/download

Visual Studio Codeの日本語化 本記事では、デフォルトの英語で操作をしておりますが、もし日本語化を希望する場合には以下の手順を実行して下さい。

  1. 上部メニューから「View」→「Command Palete…」の順にクリックします。 

  2. 「configure」と入力すると「Configure Display Language」が表示されますので、クリックします。 

  3. 「Install additional languages…」をクリックします。

  4. 左側に言語一覧が表示されますので「日本語」の横にある「Install」をクリックして、Visual Studio Codeを再起動すれば、日本語化は完了です。 

まとめ

いかがでしたでしょうか?まずは概要ということで触りをちょろっと触れてみました。これから核心に迫っていきますヨ。第2回目は「WSL1&2のしくみ」になります。

アバター画像
About 武井 宜行 269 Articles
Microsoft MVP for Azure🌟「最新の技術を楽しくわかりやすく」をモットーにブログtech-lab.sios.jp)で情報を発信🎤得意分野はAzureによるクラウドネイティブな開発(Javaなど)💻「世界一わかりみの深いクラウドネイティブ on Azure」の動画を配信中📹 https://t.co/OMaJYb3pRN
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

6人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる