🍣
Ubuntu-minimalのSnap版Chromiumでheadlessモードが動かないときの対処
Ubuntu-minimal環境でSnap版Chromiumのheadlessモードが動かなかったときのメモです。
原因は、フォントがインストールされていないことが原因のようで、フォントをインストール後、Snap版Chromiumを再度インストールすることで解決しました。
事象発生時の環境
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
...
Ubuntuは19.10頃からdeb版のChromiumが廃止され、Snap版でのみ提供されるようになった。当該バージョンのChromiumはSnap版のみ。
事象の内容
Chromiumをインストール
$ chromium
Command 'chromium' not found, but can be installed with:
sudo snap install chromium
$ sudo snap install chromium
chromium 89.0.4389.72 from Canonical✓ installed
$ chromium --version
Chromium 89.0.4389.72 snap
Chromiumを実行
$ chromium --headless
[0305/151916.045248:WARNING:headless_content_main_delegate.cc(530)] Cannot create Pref Service with no user data dir.
[0305/151916.263772:ERROR:vaapi_wrapper.cc(573)] Could not get a valid VA display
Trace/breakpoint trap (core dumped)
コアダンプとともに一番手前のプロセスが異常終了する。
修正
任意のフォントをインストールした後に、snap disable chromium
-> snap enable chromium
で解消した。
$ sudo apt install fonts-dejavu-core
Reading package lists... Done
...
Setting up fonts-dejavu-core (2.37-1) ...
$ sudo snap disable chromium
chromium disabled
$ sudo snap enable chromium
chromium enabled
$ chromium --headless
[0306/010646.813105:WARNING:headless_content_main_delegate.cc(530)] Cannot create Pref Service with no user data dir.
[0306/010646.859949:ERROR:vaapi_wrapper.cc(573)] Could not get a valid VA display
$
原因
下記でレポートされている。
フォント関連で当該事象が発生している模様。手元の環境で確認したところ、Chromiumインストール時点でフォントがインストールされていない場合に発生する。
SnapのDesktop Extensions Font Hookによりフォントキャッシュが生成されるため、snapの外側でフォントをインストールした場合は、再度当該Hookを走らせる必要がある。
そのため、フォントインストール後に
- snap remove / installを実行
- snap disable / enableを実行
のいずれかで解消するとの結論に至った。
さいごに
Snapはポータブルで、セキュアな素敵な仕組みだが、まだSnapの外側とのやり取りが枯れていないなと実感した。
普段はArch Linux使いでSnapはあまり気にしていなかったが、Snap難しいな。。
yskszk63/chrome-remote-interface-rsでGitHub Actions書いているときにSnapで色々あったうちの一つです。
Discussion