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公式のwikiにUbuntuをArchLinuxに置き換える方法が紹介されていますので、wikiを参照してください。
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 をシェルで実行するとインストールすることが出来ます。
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から削除された模様なので手動でインストールします。
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も検討してみてはいかがでしょうか。
この記事を書いた人
- 2013年にアーティスに入社。システムエンジニアとしてアーティスCMSを使用したWebサイトや受託システムの構築・保守に携わる。環境構築が好き。
関連記事
最新記事
FOLLOW US
最新の情報をお届けします
- facebookでフォロー
- Twitterでフォロー
- Feedlyでフォロー