WSL2(Ubuntu 22.04)上でSnapdを動かす(2022)
Ubuntuのインストーラーが豪華になってた
関連記事:
WSL2(Ubuntu 20.04)上でSnapdを動かす
Distrodを使ってWSL2でsystemdを動かす
この記事更新するとは思わんかったな。
zennに移行して最初の方に以下の記事を書いた。
強引にコマンド打ってsystemdを入れちゃおう作戦。
その後、systemdを追加する手法が見つかったのでDistrod主体に切り替えたのだが、
どうも公式がUbuntuサポートしようと動いたようだ。
('ω') まぁ、snapd使いたいし
ということで公式手順でsnapdを動かす方法を書いていく。
ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪
------------------- ↓ 本題はここから ↓-------------------
事前準備
WSLのカーネルは最新にしておく
wsl --update
Ubuntu22.04以上サポートらしい。
20.04の人はバージョンアップより新規で入れる方がいいかもしれない。
そのまま使いたい人は以下のコマンドを実行
sudo do-release-upgrade -d
wsl Ubuntu22.04インストール
こちらを参考の事
最新にしとこう
sudo apt update; sudo apt upgrade -y
systemdを常駐させる設定にする
状態確認
まず初期状態のプロセスを確認
ps axuw
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1744 1080 ? Sl 14:10 0:00 /init
root 7 0.0 0.0 1764 68 ? Ss 14:10 0:00 /init
・・・
dozo 1051 0.0 0.0 11112 1556 pts/0 R+ 14:14 0:00 ps axuw
PID1には/init
が鎮座している。
wsl.confにwsl-systemdを設定
Ubuntu22.04では以下のコマンドが追加されている
| /usr/libexec/wsl-systemd
これをwsl.confのbootディレクティブに設定する
[boot]
command="/usr/libexec/wsl-systemd"
Ubuntu再起動
powershellに戻ってubuntuを再起動し、
ubuntuコマンドでログインする。
wsl -t Ubuntu-22.04
ubuntu2204.exe
状態再確認
ps axuw
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 7.0 0.1 165980 11168 ? Ss 14:45 0:00 /lib/systemd/systemd --unit=multi-user.target
・・・
dozo 365 0.0 0.0 11112 1568 pts/0 R+ 14:45 0:00 ps axuw
(・∀・) それっぽい!
snapdを使ってみる
さて、それではsnapd経由でchromiumを入れてみよう。
snapdのインストールはすでにあるので必要ない。
sudo snap install chromium
chromium 104.0.5112.101 from Canonical✓ installed
sudo snap install microk8s --classic
microk8s (1.24/stable) v1.24.3 from Canonical✓ installed
(^_-)-☆ やったね!
参考:
- https://github.com/microsoft/WSL/issues/5126#issuecomment-1111957720
- https://bugs.launchpad.net/ubuntu/+source/wsl-setup/+bug/1962556
------------------- ↓ 後書はここから ↓-------------------
ubuntu2204.exeが使えないとき
OSアップデートなどでubuntu2204.exeが使えないときは
wslコマンドで以下のようにする
(シェルがbashの時)
wsl -d Ubuntu-22.04 -e /usr/libexec/nslogin /bin/bash
ERROR: Systemd is not running. エラー
wslログイン時に以下のエラーが出るとき
wsl -d Ubuntu-22.04 -e /usr/libexec/nslogin /bin/bash
ERROR: Systemd is not running. Please terminate this instance by running "wsl -t <distro>" from Windows shell and try again.
即時起動しないので、
OS起動して少し経ってからログインするとエラーが出なくなる
Discussion