【WSL2】Ubuntu 20.04でPID1をsystemdにする 2021年7月版

2021年7月19日Windows,環境構築

追記: 2122/11/19
WSL自体がsystemdをサポートしたので記事を書きました。
こちらもご覧ください。


こんにちは、しきゆらです。
今回は、もう何回書くのか、という勢いで書いているWSL2上でsystemctlを使うための手順です。
またもやOS入れ直しで環境リセットしたので、再度入れようとしたところ以前の手順では不十分だったのでメモしなおしです。

とはいえ、使うものは天下のgenieです。
https://github.com/arkane-systems/genie


GENIEのインストール準備

依存するもののバージョンが変わったりものが増えたりしているので、対応してあげるだけなので簡単です。
まずは、依存しているもろもろを入れてあげます。

sudo apt install -y daemonize dbus gawk libc6 libstdc++6 policykit-1 systemd systemd-container

続いて、こいつも依存するものですがdotnet-runtime-5.0を入れてやります。

# パッケージのインストール
wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

# パッケージの最新版を取得、更新
sudo apt update;
sudo apt upgrade;
 
# dotnet-runtime-5.0をインストール
sudo apt install dotnet-runtime-5.0

これにて下準備はおしまい。
では、genieを入れていきます。

GENIEのインストール

sudo su # root になっておく

apt install apt-transport-https

wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg

chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

cat << EOF > /etc/apt/sources.list.d/wsl-transdebian.list
deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
EOF

apt update

exit # userに戻す

# system-genieのインストール
sudo apt install systemd-genie

これにてインストールは完了。
あとは、genie -lなどで実行しておけばOK。

WSL起動時にgenieを自動起動させる

WSL実行時にgenieを良しなに動いた状態にしておきたい場合は、以下を参考に設定しておけばよい。
https://github.com/arkane-systems/genie/wiki/Automatically-start-genie-on-every-shell-session

# Are we in the bottle?
if [[ ! -v INSIDE_GENIE ]]; then
    echo "Starting genie:"
    exec /usr/bin/genie -s
fi

これにて完了です。
前回書いたのが2021年3月だったので、結構な頻度で更新されているようです。
追っておいたほうがいいのかな。

ということで、今回はここまで。
おしまい

Posted by しきゆら