グローバルナビゲーションへ

本文へ

フッターへ

お役立ち情報Blog



Windowsで至高のターミナル生活を求めて(番外編:ArchLinux on WSL2)

以前の記事「Windowsで至高のターミナル生活を求めて(Windows Terminal編)」 ではWindows Terminal + Ubuntu-20.04 on WSL2をご紹介しました。

Ubuntu-20.04もとてもいいLinuxディストリビューションだと思いますが、MSYS2を使っていた経験からか新しいバージョンのパッケージを使いたい衝動が抑えきれなくなってきました。

今回は番外編と題しまして、Windows Terminal + ArchLinux on WSL2 環境の構築方法をご紹介します。

注意事項
今回のArchLinuxのインストール方法には有志のツールを使用します。
公式の方法でインストールしたい方はArchLinux公式のwikiにUbuntuをArchLinuxに置き換える方法が紹介されていますので、wikiを参照してください。

参照:https://wiki.archlinux.jp/index.php/WSL_にインストール

ArchLinuxの紹介

ArchLinuxとは「Keep It Simple」を標榜するLinuxディストリビューションです。

ローリングリリースと呼ばれるリリースモデルを採用しており、定期的なソフトウェアアップデートを行うことでパッケージを常に最新の状態に保つことができるのが特徴です。

ArchLinuxのインストール

有志の方がArchLinuxのイメージを配布してくれていますので、ありがたく使わせていただきます。

https://github.com/yuk7/ArchWSL

提供パッケージは2種類です。

📁zipバージョン
このバージョンの場合は、複数インストールや任意名でのインストール等の機能が使用可能です。

📦appxバージョン
このバージョンの場合は、ストアアプリパッケージとしてインストール/管理できます。

今回はzipバージョンの方を使用します。

1. パッケージのダウンロード

Releases から最新のzipファイルをダウンロードします。

2. zipファイルの解凍

zipファイル内には2つのファイルがあります。

  • Arch.exe
  • rootfs.tar.gz

Arch.exeと同じフォルダにArchLinuxがインストールされた仮想ハードディスクの「ext4.vhdx」が作成されますので、任意の場所に配置しましょう。

筆者は以下のパスに配置しました。

%userprofile%\wsl\Arch

3. Arch.exeの実行

Powershellで格納フォルダまで移動しArch.exeを実行します。

PS> .\Arch.exe
Using: C:\Users\[Username]\wsl\Arch\rootfs.tar.gz
Installing...
Installation Complete!
Press any key to continue...

ArchLinuxのインストールは以上です。簡単ですね!

WindowsTerminalの設定

Windows Terminalのsettings.jsonを開くとArchLinuxの設定が追加されていますので、 Windows Terminalで開いた時のディレクトリをLinuxユーザーのホームディレクトリに変更します。

             {
                 "guid": "[GUID]",
                 "hidden": false,
                 "name": "Arch",
                 "source": "Windows.Terminal.Wsl",
+                "commandline": "wsl.exe ~ -d Arch"
             }

デフォルトターミナルの変更

Windows Terminalをデフォルトのターミナルに変更します。

PS> .\Arch.exe get --default-term
default

PS> .\Arch.exe config --default-term wt
PS> .\Arch.exe get --default-term
wt

ArchLinuxの初期設定

Windows Terminalで追加したArchLinuxを開きます。

1. Mirror listを変更

日本のミラーサーバを使用するように変更します。

sed -i.dist \
    -e 's/^Server/#Server/g' \
    -e 's!#Server = \(https\?://.*\?\.jp\)!Server = \1!g' \
    /etc/pacman.d/mirrorlist

2. PGP鍵の設定

# keyringの初期化
pacman-key --init

# keyringのインストール
pacman-key --populate

# keyringの更新
pacman -Syy archlinux-keyring

3. 作業用ユーザーの作成

[Username]の箇所を適宜変更してください。

export Username=[Username]

# ユーザー作成
useradd -md /home/$Username $Username

# sudoの設定
cat <<EOT > /etc/sudoers.d/$Username
$Username ALL=(ALL) NOPASSWD: ALL
Defaults:%$Username !requiretty
Defaults:%$Username env_keep += SSH_AUTH_SOCK
EOT

chmod 440 /etc/sudoers.d/$Username

# パスワードの設定
passwd $Username

Default Userの変更

Defaultではrootユーザーでログインするので、作成したユーザーに変更します。
※この設定はPowershellで行います。

PS> .\Arch.exe config --default-user [Username]

以降は作業用ユーザーでログインされるようになります。

Root Userの凍結

sudo passwd -l root

4. yayのインストール(任意)

AURパッケージを使用したいのでyayをインストールします。

sudo pacman -Syyuu --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

初回pacman実行時にfakerootのインストール確認

:: fakeroot is in IgnorePkg/IgnoreGroup. Install anyway? [Y/n]

:: fakeroot and fakeroot-tcp are in conflict. Remove fakeroot-tcp? [y/N]

fakerootはSYSV IPCをデフォルトで使用しています。 WSL1では、SYSV IPCをサポートしていません。
fakeroot-tcpᴬᵁᴿ 代わりに使用できます。(WSL2ではSYSV IPCをサポートしているため、必要ありません。)
fakeroot-tcp-1.23-1-x86_64.pkg.tar.xzをダウンロードし、 pacman -U fakeroot-tcp-1.23-1-x86_64.pkg.tar.xz  をシェルで実行するとインストールすることが出来ます。

https://wsldl-pg.github.io/ArchW-docs/locale/ja-JP/Known-issues/#fakeroot

WSL1では fakeroot-tcp をインストールする必要があるようですが、WSL2なので fakeroot をインストールして fakeroot-tcp を削除します。

5. systemdの環境構築

wslでは独自のinitシステムを使用しており、そのままではsystemdを使用することができません。
systemdを使用できるようにするgenieというツールを使用します。

cd /tmp
curl -LO https://github.com/arkane-systems/genie/releases/download/v1.42/genie-systemd-1.42-1-x86_64.pkg.tar.zst
sudo pacman -U ./genie-systemd-1.42-1-x86_64.pkg.tar.zst

※リリースバージョンは適宜変更してください

トラブルシューティング

exec: “xdg-open,x-www-browser,www-browser,wslview”: executable file not found in $PATH

gh repo view -w

上記コマンド実行時のエラー。

Ubuntuではエラーが発生しなかったのですが、Microsoft StoreのUbuntuはプリセットでwsluがインストールされていると思われます。

ArchLinuxではポリシー違反でAURから削除された模様なので手動でインストールします。

AUR version of  wslu  is pulled due to that it violated its policy.
Download the latest package from release and install using the command:  sudo pacman -U *.zst https://github.com/wslutilities/wslu#arch-linux
cd /tmp
curl -Ss -LO https://github.com/wslutilities/wslu/releases/download/v3.2.3/wslu-3.2.3-0-any.pkg.tar.zst
sudo pacman -U *.zst
※リリースバージョンは適宜変更してください

まとめ

WSL2のArchLinuxのインストール、初期設定方法についてご紹介しました。
長い間MSYS2を使用していたので、パッケージマネージャーにPacman(yay)を使用できるようになったのはうれしいです。
WSL2で別のLinuxディストリビューションに興味がある方はArchLinuxも検討してみてはいかがでしょうか。

この記事を書いた人

美髭公
美髭公事業開発部 web application engineer
2013年にアーティスに入社。システムエンジニアとしてアーティスCMSを使用したWebサイトや受託システムの構築・保守に携わる。環境構築が好き。
この記事のカテゴリ

FOLLOW US

最新の情報をお届けします