あのときの、ほら!あれ、あれ!

SIer勤務のAWSなエンジニア(父)が好きなことをアウトプットして人生のなにがしかに役立てたり役立てなかったりするブログ

WSLを使用してWindowsOS上でUbuntuを操作できるようにしてみた

WSLで WindowsOS上でUbuntuを操作できるようになる?

私は根っからのWindowsユーザーです。
よく「開発するならMac一択!」みたいに言われていますが、なかなかMacを購入する自己投資に踏み切れずにいます。

そんなWindowsユーザーにとって、開発やらなんやらの勉強をする際の
開発環境ってどんなものがそろっているのが良いんだろう?と思って調べていたんですが
ナレッジが収集しやすかったり、そもそもいろいろなTech系のブログが
Linux系の環境を前提にしていたりするため
やっぱり開発はMacLinux系)の環境で進めた方が良さそう。

Windows環境でLinux環境を整える良い方法。。
一応、VMwareWorkStationとかでLinuxの仮想環境作るとかはできるんですが
結構PCへの負荷が大きかったりするのであまりやりたくない。

他に良い方法。。と思って調べていたらWindows10から「WSL」という機能が
標準搭載されたとの記事を見かけましたので
内容について調べて、実際にインストールしてみました。
以下のサイトを参考にさせて頂きました

【WSL入門】第1回 Windows 10標準Linux環境WSLを始めよう:ITの教室 - @IT

WSLとは

WSL(WindowsSubsystem for Linux)の訳
Windows10 FallCreatorsUpdateから標準搭載
WindowsStoreからLinuxディストリビューションをインストールして
WindowsOS上でLinuxディストリビューションを操作することができる機能

利用するメリット

  • WSL側からWindowsOS側のすべてのファイルやフォルダにアクセス可能
  • WindowsOS上でLinuxのコマンドを使用できる
    → 類似機能を持つコマンドがWindowsにあってもLinuxコマンドの方が機能が充実しているものがある
  • 仮想マシンを使用するより、起動負荷が少なく、起動時間が早い

制限事項

  • ハードウェアを操作するようなアプリケーションは動作できない
  • コンテナなど特殊なソフトウェアは使用できない
  • Linuxカーネルの一部の機能が制限される ex.デバイスドライバの組み込み。システム管理系機能はWSL内の情報取得のみ
  • デーモンの自動起動はされない(手動で起動して動作させることは可能)
    Webサーバなどをホスティングする用途には向いていない

とりあえず使えるようにしてみた

HTTPサーバのホスティングに向いていないのか。。と
ちょっとだけモチベーションが下がりつつとりあえず使えるようにしてみました。

WSL機能を有効化
  • PowerShellを管理者権限で起動して下記のコマンドを実行してWSLを有効化

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

f:id:nogasalog:20191014195428p:plain

  • WSLの有効化後はシステムの再起動が必要

f:id:nogasalog:20191014200341p:plain

Linuxディストリビューションのパッケージインストール

f:id:nogasalog:20191014200542p:plain

  • 今回はUbuntuをインストール選択してインストール

f:id:nogasalog:20191014200621p:plain

Ubuntu(WSL)起動
  • インストール環境後、初回起動

初回起動は数分かかる

f:id:nogasalog:20191014200840p:plain

  • 初期設定

ユーザー名、パスワードを設定
f:id:nogasalog:20191014200958p:plain

とりあえず必要な設定はこれだけで非常に簡単でした。 おそらく使い込んだらもっとやるべきことがあるんでしょうが。。

動作確認

おまじないのごとくaptコマンドでパッケージ更新してみましたが
使用感は普通のLinuxホストと遜色ないように感じました。

ちなみに初期設定で作るユーザーは特権ユーザーではありません。
初期状態でsudoできるようになっているため、コマンド実行時は注意が必要です。

$ sudo apt update

$ sudo apt upgrade

インストールしてみて

使いどころをあまり理解できていないのですが WSLからWindows上のファイル操作も可能という利点を活かして
Windows上のVSCodeLinux動作を想定したスクリプトを書いてWSLから実行してテスト!」
みたいな使い方はできるかなと思いました。
また、仮想マシンを使用したLinux環境で必要となる

  • 仮想マシン作成→OS起動
  • Windowsでの操作が必要なときはいちいち環境切り替え
  • Windows環境で作ったファイルを使う場合はいちいち環境またいで受け渡し

をやらなくても良いというのは確かに利便性はあるように感じました。

Windowsユーザーで開発者の方はどんな環境で開発をしていますか?
私の環境模索はまだまだ続きそうです。。。

それでは!