Help us understand the problem. What is going on with this article?

WSL (Windows Subsystem for Linux) をコマンドラインでインストールする

はじめに

Windows 10 の環境が増えてきたので備忘録。何度も同じことをするとなると、やっぱコマンドラインの方が、記述するのも、実行するのも楽だと思う。

手順の流れとしては GUI でやることと変わらないが、Microsoftストアに接続しなくても良い、所属ドメインのポリシで色々と制限されている環境でも利用できる、というのが大きなメリット。

なお、WSL 2 ではまだ試していない。

試した環境

  • Windows 10 Professional もしくは Enterprise version 1803 (Redstone 4), 1809(Redstone 5), 1903(19H1)
  • PC もしくは Virtualbox

手順

1. WSL のインストール

管理者権限の PowerShell で以下を実行し、リブートする。

PS C:\> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
この操作を完了するために、今すぐコンピューターを再起動しますか?
[Y] Yes  [N] No  [?] ヘルプ (既定値は "Y"): (ENTER)

2. ディストロのダウンロード

ディストロパッケージの好みのものを好みの手段でダウンロードする。最新のディストロパッケージ一覧はMicrosoftのオンラインマニュアルに記載されている。
- Ubuntu 18.04 (https://aka.ms/wsl-ubuntu-1804)
- Ubuntu 16.04 (https://aka.ms/wsl-ubuntu-1604)
- Debian GNU/Linux (https://aka.ms/wsl-debian-gnulinux)
- Kali Linux (https://aka.ms/wsl-kali-linux)
- OpenSUSE (https://aka.ms/wsl-opensuse-42)
- SLES (https://aka.ms/wsl-sles-12)

PowerShell であれば、以下でダウンロードできるが、かなり遅いようなので、他の手段で(ブラウザやVM環境の場合はホスト環境で)ダウンロードした方が速い。

PS C:\> Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile C:\Users\XXX\Downloads\Debian.appx -UseBasicParsing

3. ディストロのインストールと初期化

管理者権限の PowerShell で以下を実行する。

PS C:\> Add-AppxPackage C:\Users\XXX\Downloads\Debian.appx

インストールに成功すれば、スタートメニューにディストロの名前があるはず。Windows Update が動作中の場合はインストールに失敗するので、もしそれが原因の場合には終了後に再度インストールを実行すると成功するだろう。そうでない場合の対策は 3a. で。

あとは、通常通り。スタートメニューのディストロ名をクリックすると、ディストロの初期化が始まる。

3a. ディストロのインストールや初期化に失敗する場合

次の手順で任意の場所にインストールできる(管理者権限が必要)。

  1. ダウンロードしたディストロパッケージの拡張子を appx から zip に変更する
  2. その zip ファイルを自分の好きなフォルダ(例えば、C:\Users\xxx\ディストロ名 など)に展開する
  3. 展開したフォルダに cd し、そこにある exe ファイルを実行する
  4. ディストロの初期化に成功すれば、Unixユーザ名を聞いてくるので適当なユーザ名(Windowsのログイン名でも良いが、異なっても問題なし)とパスワードを設定する
  5. (optional)上記の exe ファイルをスタートにピン留めする
PS C:\Users\xxx\Downloads> Copy-Item .\Debian.appx .\Debian.zip
PS C:\Users\xxx\Downloads> Expand-Archive .\Debian.zip C:\Users\xxx\Debian
PS C:\Users\xxx\Downloads> cd C:\Users\xxx\Debian
PS C:\Users\xxx\Debian> .\debian.exe
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: xxx
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Installation successful!

ディストロのインストールや初期化に失敗する原因は色々あるようだが、以上の手順でもダメな場合には、あきらめた方がよさそう。

4. ディストロのアンインストール

上記の 3. でインストールした場合には、管理者権限の PowerShell で以下を実行する。これで、ユーザごとに初期化した(展開された)ディストロも全て消去される。

PS C:\> Get-AppxPackage *debian* | Remove-AppxPackage -AllUsers -Confirm

Confirm
Are you sure you want to perform this action?
Performing the operation "Remove package" on target "TheDebianProject.DebianGNULinux_1.1.3.0_x64__76v4gfsz19hv4".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y

4a. ディストロのアンインストール

上記の 3a. でインストールした場合には、wslconfig で unregister してから、ディストロを展開したフォルダごと消去する。

PS C:\Users\xxx> wslconfig /u Debian
PS C:\Users\xxx> Remove-Item .\Debian -Recurse
moriai
元OSカーネル屋(Unix, Mach, ...).昔々は機械学習屋(音声認識).趣味で Rust & Swift プログラミングをぼちぼち.本業はないしょ.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした