WSL にインストール

提供: ArchWiki
2017年7月11日 (火) 22:09時点におけるKusakata (トーク | 投稿記録)による版 (→‎インストール: 同期)
ナビゲーションに移動 検索に移動

Windows 10 には Linux カーネルのインターフェイスをエミュレートするサブシステムが搭載されており、通常の Linux アプリケーションを実行することができます。Wine と同じような仕組みですが、もっと低水準です。デフォルトでは Ubuntu のユーザー空間がセットアップされていますが、Arch に置き換えることが可能です。動作させるにはパッケージをビルドするための Arch 環境が必要です。このページの手順は こちらのガイド を基にしています。

準備

Windows 10 の creator's update が必要です。まだ Windows Subsystem for Linux を有効にしていない場合、こちら の手順に従って有効化してください。基本的に以下のように有効化します:

  • 設定 > 更新とセキュリティ > 開発者向け にある開発者モードを選択
  • Windows の機能の有効化または無効化 にある Windows Subsystem for Linux (beta) にチェック

既にインストールしている場合、以下のコマンドを使って既存環境を削除してください (重要なデータは先に保存してください):

> lxrun /uninstall /full /y

インストール

ノート: Windows ストア から Ubuntu をインストールすることもできますが、Windows Insider である必要があります (もしくは Fall Creators Update を導入済みであること)。詳しくは [1] を参照。

コマンドプロンプトを開いて公式の Ubuntu をインストール:

> lxrun /install /y

bash を起動:

> bash ~

Arch のブートストラップ .tar.gz を ダウンロードページ からダウンロードして、解凍:

$ tar -zxvf /mnt/c/Users/username/Downloads/archlinux-bootstrap-2017.06.01-x86_64.tar.gz

~/root.x86_64/etc/pacman.d/mirrorlist 内の使用するサーバーをアンコメントしてください。

WSL で /etc/resolv.conf を自動生成:

$ echo "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line." > ~/root.x86_64/etc/resolv.conf

開いた bash プロンプトを全て閉じてください。

Windows エクスプローラで C:\Users\username\AppData\Local\lxss\rootfs を開いて bin, etc, lib, lib64, sbin, usr, var を削除してください。

そして上記と同じフォルダを C:\Users\username\AppData\Local\lxss\root\root.x86_64 から C:\Users\username\AppData\Local\lxss\rootfs に移動してください (コピーでは駄目です)。

Linux コンピュータを使って fakeroot-tcpAURglibc-wslAUR をビルドしたら Windows PC にパッケージをコピーしてください。glibc-wsl には このバグ に対応する修正が含まれており、fakeroot-tcp は WSL によって System V IPC が完全に実装されるまで必要です (こちら を参照)。WSL のバグが修正されればこの手順は不要になります。

再度 bash を開いて、Arch をセットアップしてください:

# pacman-key --init
# pacman-key --populate archlinux
# pacman -U /mnt/c/Users/username/Downloads/glibc-wsl-2.25-2-x86_64.pkg.tar.xz
# pacman -U /mnt/c/Users/username/Downloads/fakeroot-tcp-1.21-2-x86_64.pkg.tar.xz
# pacman -Syyu base base-devel

ユーザーをセットアップ (Windows のユーザー名と同じにする必要はありません):

# useradd -m -G wheel -s /bin/bash username
# passwd root
# passwd username

Windows コマンドプロンプトで以下のコマンドを実行することでユーザーをデフォルトに設定できます:

> lxrun /setdefaultuser username