Windows Subsystem for Linux(以降WSL)として Linux を扱うことが可能ですが、その中で沢山あるうちの一つがこの Ubuntu となります。
更にこの Ubuntu はバージョン固定版と可変版があります。
今回は可変版で、初期インストールのタイミングで最新版がインストールされるようになっています。
WSLはバージョン1とバージョン2が現在あります。
デフォルト設定では1が使用されますので、手動で2へ変更する必要があるようです。
WSLについての初期セットアップはマイクロソフトのサイトを参考にするとよいと思います。
https://docs.microsoft.com/ja-jp/windows/wsl/
この Ubuntu は、現段階だと主にGUIアプリではなくCUIアプリ(コンソールからコマンド実行等)がメインになります。
なので、デスクトップとして操作ではなくローカル内のサーバーとして稼働させるのがメインになると思います。
GUIについては Windows Insider Program に参加すれば手軽に利用可能になりますが、全ての動作に対してサポートされているわけではないです。
癖があるので、ちょっと使いにくい
■ 前提条件
上記で提示済みのマイクロソフトのサイトにて、”WSL 2 を既定のアーキテクチャにする”へ設定してあることが前提となります。
■ Ubuntu のインストール
Microsoft Store を開いて”WSL”と検索します。
バージョン情報が何も書いてない”Ubuntu”と表示されているものを選択します。
”インストール”をクリックします。
インストールが完了すると、”起動する”ボタンが出現するのでクリックします。
(スタートメニューに”Ubuntu”が追加されるので、そちらをクリックでも問題ないです)
起動時のインストール作業のため、数十秒程度待ちます。
その後、Ubuntuの初期ユーザー名とパスワードを入力します。
入力出来たら、下記のような画面になります。
以降、初期起動画面はこのようになります。
一旦、ここで Ubuntu のインストール及び起動は完了です。
■ Ubuntu のカスタマイズ
実はこの WSL版Ubuntu 、とても癖があります。
そもそも Linux を知らない人や初めて Linux について触る方などにとっては”なんのこと?”となりますが・・・現状私が把握している情報を下記に列挙します。
- systemctl によるサービス起動ではなく、service コマンドによる操作。
- service の自動起動設定が出来ない。
- OS起動時の rc.local が使用できない。
- SSHサーバーのssh-keygenによる生成が行われていない。(すぐにSSH接続出来ない)
- シャットダウン操作は Windows PowerShell (管理者)からコマンドで操作する。
- /mnt 配下にWindowsのCドライブ等にアクセス出来るディレクトリがマウントされている。
- Ubuntu側でWEBサーバー等を立ち上げた場合、Windowsからは localhost:80 などでアクセス出来る。
- Windows側でスリープから復帰した際、Ubuntu側の時刻がズレるらしい。
- nodejs のバージョンが古くてライフタイムが終了している。
- LinuxのGUIアプリを使用する際は、Windows側で VcXsrv(Xサーバー)をインストールして稼働状態にしておかないとならない。(Windows Insider Programに参加している方は、マイクロソフトの WSLg でGUIアプリを使用することが可能)
くらいでしょうか。
気がついたことがあれば、常時追加しようかと思います。
上記の2と3が結構重要になってくると思います。
調べると Linux の裏技的なことを使用すると、どうやら回避出来るようです。
参考:https://qiita.com/amenoyoya/items/41a2334cbc1facb87864
rc ファイルシステムをマウントするように設定したあと、"/sbin/mount.rc"に下記のような記述をしてあげることで、各種サービスを自動起動するような動作になります。
$ cat /sbin/mount.rc
#!/bin/bash
service ssh start
service apache2 start
service mysql start
発展途上
下記が拡張機能としてサポートしているので、WEBサイト・WEBアプリを作成する際に便利になります。
-
購入金額
0円
-
購入日
2021年09月01日
-
購入場所
Microsoft Store
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。