ArchWSLをインストールしてyayを使えるようにするまでの手順

# 何この記事？

「どうしても ArchLinux を Windows 上で触りたい！」と私は常日頃思ってたんですが、
「Hyper-V」や「VirtualBox」などの仮想化ソフトウェアは使いたくなかったんですよね ~~（なぜ？）~~

で、色々ググってたら「Windows Subsystem for Linux」上で ArchLinux が動く「ArchWSL」なるものがあるじゃねえか！
ってことで入れてセットアップしようとしたら普通に ArchLinux を入れるよりも**クソ面倒臭い事になった**ので、
もし「これから ArchWSL 入れるぞ～」って感じの人が同じ目に合って苦しまないように~~わかりやすいかどうかは置いて~~とりあえずインストール手順を書いてみました。

尚、詰まりまくったりしたのはもしかしたら**私の環境がクソなせいだから**なのかもしれません。
一応どの環境でもいい感じに動いてくれると思うので~~どの環境に入れても同じ問題が発生してくれると思いま~~すが、いわゆる「環境差」って奴でたまに変な挙動をしてくる環境とかもあると思います。
その場合は「これをこうしたらいい感じに動いた」とか報告下さい。追記させて頂きます！

ついでに先に言っておきますが **「WSLとかLinuxに触った事ない人」は先に「Ubuntu」あたりを触ってちょっとだけ慣れておくといい** と思います。
といってもこの記事を見てる時点で慣れてる人しかいないと思いますが。

## 私の環境

- OS: Windows 10 21H1 (10.0.19043.1110) x64 **Home**
- WSL: Windows Subsytem for Linux 2
- ArchWSL: [ArchWSL 21.7.16.0](https://github.com/yuk7/ArchWSL)
- Terminal: [Windows Terminal Preview](https://www.microsoft.com/ja-jp/p/windows-terminal-preview/9n8g5rfz9xk3)

**Home**じゃなかったら大人しく Hyper-V 使って普通の ArchLinux 入れるんですけどね。そのうち Pro のライセンス買おうと思います。

# 導入方法

WSL2 のインストールはされてる前提でいきます。[この記事](https://qiita.com/tomokei5634/items/27504849bb4353d8fef8)を見ながら導入してください。

## ArchWSL をインストールする

### zipを落として展開する

ここでは**zip 版をインストールします**。appx バージョンでも多分問題ないと思います。

[ここ](https://github.com/yuk7/ArchWSL) から飛べます。必要に応じて README.md を読んだ上で [Releases](https://github.com/yuk7/ArchWSL/releases) から最新版の「Arch.zip」をダウンロードして、
C 直下など、**フルアクセス権が付与されたディレクトリ**に展開してください。私は C 直下に「ArchWSL」ディレクトリを作成してその中に置きました。

### Arch.exe の設定

展開したら「Arch.exe」を起動するとなんか勝手にインストール的なのが始まって wsl に登録されます。
インストールが終わったら一回 Arch を logout とかで抜けて、PowerShell 側で以下のコマンドを叩いて WSL2 として動くように設定してあげます。

```powershell
wsl --set-default-version 2
```

WSL2 として動くように設定されたか気になる！って人は以下のコマンド叩いて確認して下さい。

```powershell
wsl --list --verbose
```

きちんと設定できていれば「VERSION」が「2」になってるはずです。

### Arch自体のアプデ

ここらへんは普通のArchLinuxと変わらないんじゃないでしょうか。以下のコマンドを適当にぺちぺちって叩くだけでアプデ出来ると思います。
**なお、初期状態でrootアカウントになってるのでコマンドのタイプミス等には気をつけて下さい。**

```bash
pacman -S archlinux-keyring
pacman-key --populate archlinux
pacman -Syyu
```

ここらへんは通常のArch Linuxと変わらないと思います。
keyringとかPGP鍵とかそこらへんで怒られるので必ず全部実行してください。

### ユーザー新しく作ってrootユーザー無効化

デフォルトでrootなのですが、この状態だと色々セキュリティ的にも危ないので、新しくユーザーを作って以降そっちでログインし、rootユーザーは無効化するようにします。

まずはユーザーを作ります。この段階ではまだroot状態です。

```bash
useradd -m -g wheel <username>
passwd <username>
```

また、この環境ではviがなくvisudoが使えないので、vimで ``/etc/sudoers`` を編集します。

```bash
vim /etc/sudoers
```

「root ALL=(ALL) ALL」を探し、その下に以下の文章を追記します。

```sh:/etc/sudoers
<username> ALL=(ALL) ALL
```

追記したら Esc で入力モードを抜けて :wq で上書き保存。これで終わりです。
次は WSL のデフォルトログインユーザーを変更します。

**Arch.exeがあるディレクトリで**PowerShell を起動し、以下のコマンドを叩くだけで変えれます。

```powershell
.\Arch.exe config --default-user <username>
```

次に「sudo」をインストールします。ArchWSLではデフォルトでsudoが居ない?ので自分でインストールしてあげないといけません。
**インストールしないまま続行すると最悪殆ど何も出来ない状態になります。**

- Googlingしてみると「最初からsudo入ってるからそのまま続行」と「最初は入ってないから自分で入れてあげる必要がある」の２つの情報があり、どっちが正しいのか分からないので念の為自分で入れました。
もしかしたら最初から入ってるかもしれないです。申し訳ない。

以下のコマンドで入れられます。

```bash
pacman -S sudo
```

インストールされたかどうか気になる人は

```bash
sudo pacman -Syyu
```

とか打ってちゃんとアプデされるか試してみて下さい。これで出来なかったらどこかでミスしてるのでやり直して下さい。
上手いことsudoも入ってくれたらあとは以下のコマンドを叩くだけでroot無効化まで成功です。

```bash
sudo passwd -l root
passwd: password expiry information changed.
```

## yay をインストールする

ここまでのセットアップを全てすっ飛ばしていきなりここから始めると100%失敗します。
理由はやってみればわかります。

まずはtmpディレクトリ等に移動します。正直どこでもいいです。なんならホームディレクトリでもOK (というかたぶんみんなそう)

```bash
cd /tmp
```

次に必要なパッケージやら何やら入れます。もしかしたら必要ないかも？

```bash
pacman -S base-devel git go
```

base-devel のインストールで途中選択肢が出ますが大体Enterポチポチでいいです。
が、「fakerootとfakeroot-tcpは競合するけどこのままインストールしますか？」みたいな選択肢だけは「n」で拒否ってください。
[既知の問題点](https://wsldl-pg.github.io/ArchW-docs/locale/ja-JP/Known-issues/#fakeroot) にもありますが、WSL1ではfakeroot-tcpが必要だったもののWSL2では必要なくなりました。
なのでfakeroot-tcpはいらないです。入れたとしても吹っ飛ばしていいんじゃないかなぁ。（未検証）

いい感じに色々入ったらGitからファイルを持ってきてmakepkgします。

```bash
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
```

ちなみに**rootユーザーの状態でgit cloneした奴はmakepkgできません。**
必ず一般ユーザーでcloneしてください。

```bash
yay --help
```

とか叩いてあげて yay のヘルプが出てきたら導入成功です。**お疲れ様でした！**

# あとがき

正直文に書き起こしてしまえば全然難なく終わらせられるインストール手順ですね。
それでもインストールしようとしたときは色々詰まったりしました（私がLinux超絶初心者っていうのもありますが）

とりあえずyayまで入れられればあとは大体何でも出来るんじゃないでしょうか？
~~GUIは今の所VcXsrvとかそんなのを使う必要がありますがもうじきWSLgが来るとのことで、だいぶ楽しみになってきました。~~
冬眠してる間にWSLgがWindows10/11に来てました。早い

以上です。