何この記事?
「どうしても 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
- Terminal: Windows Terminal Preview
Homeじゃなかったら大人しく Hyper-V 使って普通の ArchLinux 入れるんですけどね。そのうち Pro のライセンス買おうと思います。
導入方法
WSL2 のインストールはされてる前提でいきます。この記事を見ながら導入してください。
ArchWSL をインストールする
zipを落として展開する
ここではzip 版をインストールします。appx バージョンでも多分問題ないと思います。
ここ から飛べます。必要に応じて README.md を読んだ上で Releases から最新版の「Arch.zip」をダウンロードして、
C 直下など、フルアクセス権が付与されたディレクトリに展開してください。私は C 直下に「ArchWSL」ディレクトリを作成してその中に置きました。
Arch.exe の設定
展開したら「Arch.exe」を起動するとなんか勝手にインストール的なのが始まって wsl に登録されます。
インストールが終わったら一回 Arch を logout とかで抜けて、PowerShell 側で以下のコマンドを叩いて WSL2 として動くように設定してあげます。
wsl --set-default-version 2
WSL2 として動くように設定されたか気になる!って人は以下のコマンド叩いて確認して下さい。
wsl --list --verbose
きちんと設定できていれば「VERSION」が「2」になってるはずです。
Arch自体のアプデ
ここらへんは普通のArchLinuxと変わらないんじゃないでしょうか。以下のコマンドを適当にぺちぺちって叩くだけでアプデ出来ると思います。
なお、初期状態でrootアカウントになってるのでコマンドのタイプミス等には気をつけて下さい。
pacman -S archlinux-keyring
pacman-key --populate archlinux
pacman -Syyu
ここらへんは通常のArch Linuxと変わらないと思います。
keyringとかPGP鍵とかそこらへんで怒られるので必ず全部実行してください。
ユーザー新しく作ってrootユーザー無効化
デフォルトでrootなのですが、この状態だと色々セキュリティ的にも危ないので、新しくユーザーを作って以降そっちでログインし、rootユーザーは無効化するようにします。
まずはユーザーを作ります。この段階ではまだroot状態です。
useradd -m -g wheel <username>
passwd <username>
また、この環境ではviがなくvisudoが使えないので、vimで /etc/sudoers
を編集します。
vim /etc/sudoers
「root ALL=(ALL) ALL」を探し、その下に以下の文章を追記します。
<username> ALL=(ALL) ALL
追記したら Esc で入力モードを抜けて :wq で上書き保存。これで終わりです。
次は WSL のデフォルトログインユーザーを変更します。
Arch.exeがあるディレクトリでPowerShell を起動し、以下のコマンドを叩くだけで変えれます。
.\Arch.exe config --default-user <username>
次に「sudo」をインストールします。ArchWSLではデフォルトでsudoが居ない?ので自分でインストールしてあげないといけません。
インストールしないまま続行すると最悪殆ど何も出来ない状態になります。
- Googlingしてみると「最初からsudo入ってるからそのまま続行」と「最初は入ってないから自分で入れてあげる必要がある」の2つの情報があり、どっちが正しいのか分からないので念の為自分で入れました。
もしかしたら最初から入ってるかもしれないです。申し訳ない。
以下のコマンドで入れられます。
pacman -S sudo
インストールされたかどうか気になる人は
sudo pacman -Syyu
とか打ってちゃんとアプデされるか試してみて下さい。これで出来なかったらどこかでミスしてるのでやり直して下さい。
上手いことsudoも入ってくれたらあとは以下のコマンドを叩くだけでroot無効化まで成功です。
sudo passwd -l root
passwd: password expiry information changed.
yay をインストールする
ここまでのセットアップを全てすっ飛ばしていきなりここから始めると100%失敗します。
理由はやってみればわかります。
まずはtmpディレクトリ等に移動します。正直どこでもいいです。なんならホームディレクトリでもOK (というかたぶんみんなそう)
cd /tmp
次に必要なパッケージやら何やら入れます。もしかしたら必要ないかも?
pacman -S base-devel git go
base-devel のインストールで途中選択肢が出ますが大体Enterポチポチでいいです。
が、「fakerootとfakeroot-tcpは競合するけどこのままインストールしますか?」みたいな選択肢だけは「n」で拒否ってください。
既知の問題点 にもありますが、WSL1ではfakeroot-tcpが必要だったもののWSL2では必要なくなりました。
なのでfakeroot-tcpはいらないです。入れたとしても吹っ飛ばしていいんじゃないかなぁ。(未検証)
いい感じに色々入ったらGitからファイルを持ってきてmakepkgします。
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
ちなみにrootユーザーの状態でgit cloneした奴はmakepkgできません。
必ず一般ユーザーでcloneしてください。
yay --help
とか叩いてあげて yay のヘルプが出てきたら導入成功です。お疲れ様でした!
あとがき
正直文に書き起こしてしまえば全然難なく終わらせられるインストール手順ですね。
それでもインストールしようとしたときは色々詰まったりしました(私がLinux超絶初心者っていうのもありますが)
とりあえずyayまで入れられればあとは大体何でも出来るんじゃないでしょうか?
GUIは今の所VcXsrvとかそんなのを使う必要がありますがもうじきWSLgが来るとのことで、だいぶ楽しみになってきました。
冬眠してる間にWSLgがWindows10/11に来てました。早い
以上です。