Windows11でLinux互換環境を使う

前職ではWindowsのターミナル環境はPowerShellやGit Bashを使っていたのですが、今の会社に入ってWindows10のPCを支給されてからWSL(Windows Subsystem for Linux)を使うようになりました。当初はベータ版ということでインストールもいろいろ面倒だったのですが、WSL2になって超ラクチンになりました。

wslコマンドでインストール

PowerShell上でwslコマンドを使ってインストールします。

以前はWindowsストアからインストールしたいディストリビューションを選んでいましたが、wslコマンドではオプション指定でディストリビューションを選択します。どんなディストリビューションがあるかはwsl –list –onlineで確認できます。

PS C:\Users\ANONYMOUS> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <Distro>' を使用してインストールします。

NAME            FRIENDLY NAME
Ubuntu          Ubuntu
Debian          Debian GNU/Linux
kali-linux      Kali Linux Rolling
openSUSE-42     openSUSE Leap 42
SLES-12         SUSE Linux Enterprise Server v12
Ubuntu-16.04    Ubuntu 16.04 LTS
Ubuntu-18.04    Ubuntu 18.04 LTS
Ubuntu-20.04    Ubuntu 20.04 LTSCode language: PHP (php)

Debianあるね。よしよし。

デフォルトで入るのはDebian9なので、/etc/apt/sources.listを修正してアップグレードしましょう。Debian11へは2回に分ける必要があります。

以下のようにsources.listを書き換えて、都度apt update、apt upgrade、apt dist-upgradeを実行します。

  • Debian10:stretchからbusterに書き換え
  • Debian11:busterからbullseyeに書き換え

なおbullseyeではセキュリティ関連のパラメータ表記が変わっているので、最終的にはこうなります。

deb http://deb.debian.org/debian bullseye main
deb http://deb.debian.org/debian bullseye-updates main
deb http://security.debian.org/debian-security/ bullseye-security mainCode language: JavaScript (javascript)

LAMP環境を構築する

MySQLが使えたり、phpが動くWebサーバーが使えると便利なので環境を整えます。インストール手順はLAMPでWebサーバーを立てるの内容と同じ。

WSLではsystemctlコマンドが使えないので、デーモンの起動はserviceコマンドを使います。普通のLinuxと違ってrootがサービスを立ち上げる仕組みがないようなので、.bashrcに以下を追記してデーモンを自動起動します。

sudo service mysql start
sudo service apache2 start
sudo service php7.4-fpm start
sudo service cron startCode language: CSS (css)

最初のsudoでパスワードの入力が求められますが、以降のコマンドはそのまま通ります。最後のcronデーモンを動かしておけば、WSLが立ち上がっている間はcronも有効になります。

とはいえ、これらはあまり使わなくなったので現在は止めてしまっています。

Windowsとの橋渡し

Windows11のエクスプローラ上にLinuxフォルダが現れます。その下にはディストリビューションごとのフォルダができていて、ここがそれぞれのルートファイルシステム。

なのでホームディレクトリまでは若干深いです。ショートカットを作るのがいいかな。

ちなみにWSL2はVM上で動くので、これらのフォルダはネットワークフォルダ同様、コンテキストメニューを表示すると警告が表示されてうざいです。

逆にLinuxからWindowsファイルシステムへのアクセスは/mnt以下にあります。マイドキュメントなどは/mnt/c/Users/ユーザー名/Documentsにあるので、シンボリックリンクなど張ると良いでしょう。

ちなみにNTFSにはunixのパーミッション情報を設定できないので、公開鍵ファイルなどパーミッション設定の必要なファイルは置かない方がいいです。

WSLではWindowsコマンドが使えます。パスを通す必要がありますが、WSLに入っていなかったarpコマンドなどはDOSコマンドをエイリアスで使うことができました。

alias arp='/mnt/c/Windows/System32/arp.exe'Code language: JavaScript (javascript)

この辺はなかなか便利ですね。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments