snap が参照するホームディレクトリを /home 以外に設定する方法

snapd は、ホームディレクトリが /home 以外に置かれていると $HOME へのアクセスを許可しない*1。この場合には、以下のコマンド列を実行して明示的にホームディレクトリの位置を指定することで正常にアクセスできるようになる。

# 以下の /local/home は各環境でホームディレクトリが配置されているパスに変更する
$ snap set system homedirs=/local/home

なお、snap --version で表示される snap および snapd のバージョンが 2.59未満であれば、以下のコマンドで前もって core パッケージを更新する必要がある。

$ snap refresh core

参考ページ

snap set system homedirs=... でホームディレクトリを設定する機能は以下のPRで導入された。最近マージされたばかりなので、本稿執筆時点では日本語情報がほぼ皆無だった。 github.com

記事内容自体は以下を参考にした。以下のQ&Aの内容を補足すると、現行の Ubuntu 22.04 であれば、release/stable でもバージョン2.59以降の snapd が入る。また、22.04では snapd パッケージではなく core パッケージで snapd が管理されている(はず)。 askubuntu.com

この方法に関する公式ドキュメントは以下のページ。一応古い方法も紹介されているので、この記事で紹介した方法が機能しなかった場合は試してみるとよい。 https://snapcraft.io/docs/home-outside-home

*1:おそらく$HOMEを書き換えて任意のディレクトリにアクセスされることを防ぐため?