上級者必見!Windows で Linux を活用する!

記事
IT・テクノロジー

上級者必見!Windows で Linux を活用する!

Windows 上で Web 開発に必要なアプリは基本的に全て利用する事ができます。しかし、Linux を使う事ができると便利な場合も沢山あります。Windows も拡張機能として、Windows10 の最近のバージョンは効率的に Linux を動かす仕組みをサポートしています。この記事では、Windows で Linux を利用する方法を紹介します。


仮想マシーンを使って Linux を動かす

最近よく耳にする言葉に「仮想マシーン(VM:Viertual Machine)」という言葉があります。 VM Ware や Virtual Box などと言った仮想環境を提供する仕組みを利用すると、一つのハードウエアの上で複数の OS を動作させる事ができます。企業などで利用する本格的なものから、個人で利用できる無料バージョンまでいろいろな種類の仮想環境が提供されています。

個人で無料で利用できるものは、普通の OS 上、Windows や Linux 上にインストールして、その上で別の OS を動作させるような形で利用する様になっています。この仕組みを利用すれば、Windows 上で Linux を動かしたり、Linux 上で Windows を動かしたりする事ができます。

* VirtualBox
* VMWare - Workstation Player
上記のパッケージをダウンロードしてインストールすれば、Windows (Linux)上で別の OS を利用できます。

Windows10 は OS の拡張機能としてサポート

Windows の拡張機能として、外部の仮想環境を導入しなくても、Windows10 が提供する機能を利用して Linux を動かす事ができる様になっています。どの Windows10 のバージョンからサポートされているか、正確に記憶していませんが、これから導入する場合には、最新版の Windows を利用される事をお勧めします。2021 年 9 月2日時点での最新版は、「21H1」というバージョンで、2021 年の 5 月にリリースされています。 (追記:64-bit 版の場合は、バージョン 1903 以降がサポートされている様です、2019 年 5 月リリースのバージョンです)

この機能を使った方が、外部の仮想環境を利用するより効率的に PC のリソース(メモリや CPU)を利用できます。

利用する Linux も複数の Linux の配布パッケージが利用可能です。個人的には、Ubuntu のパッケージを利用していますが、必要に応じて選択できます。

この機能は、「Windows Subsystem for Linux (WSL)」と呼ばれている拡張機能です。詳細の設定のやり方はマイクロソフトのサイトで解説されていますので参考にしてください。

基本的な流れは、

Windows Subsystem for Linux (WSL)を有効にする (PowerShell 上で行います)
Microsoft store から WSL 用の Linux パッケージをダウンロードする
Microsoft store でパッケージを指定すると自動的にインストールされます。 さらに、WSL2 にアップグレードしておく事をお勧めします。

Linux を動かすメリットは?

何故面倒なインストールをしてわざわざ Linux を動かすか疑問に思われる方も多いですよね?

実際には、殆どの Web 開発の初心者の方には余り必要のない機能とも言えます。シンプルな Web 開発として、フロントエンド中心の開発の場合には余り必要はありません。Windows 上に Windows 版の Web 開発のアプリをインストールすれば基本的に問題ありません。

ではどんな人にメリットがあるかというと、幾つかあります。

* Windows 以外の開発環境を利用している人(Mac や Linux)
* バックエンドの開発も必要な方
Windows 以外の開発環境を利用している人の場合、UNIX 系の開発環境に揃えた方が、実際の使い勝手もほぼ同じになるので混乱する事なく開発ができます。WSL を利用している場合、VSCODE も仮想環境の Linux 側で利用する機能がサポートされているので、Web 開発のアプリも Linux 版を利用できます。大きな差はありませんが、個人的には PowerShell で利用するよりスムーズに利用できる場合が多いように思います。

バックエンドの開発も、Linux を利用しないでも XAMPP や WAMP などのパッケージを利用すれば Linux の導入しなくてもバックエンドを含む開発をする事ができます。(これらは、バックエンドに Apache/SQL/PHP を使う場合です) しかし、実際のバックエンドの開発を行う場合は、案件毎にバックエンドの仕様や実装方法が違う場合が殆どです。そうした場合、プロジェクト毎に実装を変える事ができた方が便利です。

Docker を使うには WSL が必要!
プロジェクト毎に実装方法を分ける場合には、Docker を利用するのが便利です。 多くのバックエンドのサーバーは Linux が利用されている場合も多く、Linux ベースで開発できる方が、実際のデプロイメントもスムーズに行きます。さらに Docker ならば、Docker 環境をそのままデプロイすることも可能です。

Docker を利用する場合には、Docker デスクトップをダウンロードしてインストールすれば、Docker デスクトップのインストーラが WSL の設定までやってくれます。(Linux のターミナルを利用したい場合には、別途設定する必要があります。)

実は、Docker 自身も一種の仮想環境で、「コンテナ」と呼ばれる技術を使って仮想化を実現しています。 プロジェクト毎に別々の Docker イメージを作成して利用すれば、プロジェクト毎に違う設定、環境での実装ができるので便利です。

単純なフロントエンドの実装も Docker を利用する事が可能です。Docker 環境をサポートしているホスティングサーバーを利用する場合には、そのままでデプロイができるのは大きな魅力です。

Linux や Mac OS で Docker を利用する場合、基本的に Linux ベースのコンテナしか利用できませんが、Windows の場合は、Windows ベースのコンテナも利用できます。(Windows のサーバーで動くバックエンドも開発可能)

まとめ
Widnwos で Web 開発を行う場合、最低限の開発は Windows 版のアプリでも十分に対応できますが、開発の手を広げたりする場合には、Linux も利用できるような環境にしておくと、広い分野の開発に対応できます。

特に、Docker などの仮想化技術を活用した開発を行う場合には、 WSL(Windows Subsystem for Linux)の導入は必須です。Docker を活用することでプロジェクト毎に異なるバックエンドの実装などにも対応できるので、手広く開発を手がける場合には導入を検討する価値は大いにあります。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す