👏

Ubuntu 22.04 への更新

2023/05/16に公開

Lubuntu 20.04 LTS (focal) から 22.04 LTS (jammy) へ上げた時のトラブル対応備忘録.
環境:16.04 LTS (xenial) の頃から使っている VM マシン

  • 更新前
    • Docker storage driver (aufs) の変更
    • 依存関係の解決
  • 更新後
    • Firefox からローカルファイルへのアクセス
    • systemd-timesyncd

更新方法 do-release-upgrade

apt-get install -y update-manager-core
do-release-upgrade

ログは /var/log/dist-upgrade に出力される.

  • main.log
  • screenlog.0: コンソールログ
  • apt.log: 依存関係の解決状況など

Docker storage driver (aufs) の変更

まず aufs storage-drive is no longer supported と言われ更新処理がはじかれた.
Storage driver を変更すると container/image 諸々消えるので migrate 処理.

https://gist.github.com/marcelrv/e7dac93863945dccc46f70915c84b5db

上記のスクリプトだと不十分で適当に書き換えが必要.

依存関係の解決

アップグレードの計算中に解決できない問題が発生しました。
これはおそらく以下に起因します:
*非公式なソフトウェアパッケージ
Launchpad PPAから削除するために..

結局問題は PPA で入手したパッケージにはなく(そもそも入っていなかった)、最終的に apt から以下のパッケージを削除した.

  • smbclient
  • cifs-utils
  • gvfs-fuse
  • gvfs-backends
  • python3

snap も関係あるかと思って vlc と inkscape も削除してしまった.

手掛かりとなったのは上記の apt.log で、おそらく system default が python2 から python3 になったので競合が大量に発生している. python3 を削除したところで進んだので python3 以外は関係ないと思われる.

Firefox からローカルファイルへのアクセス

今までは NTFS でマウントしたファイル(owner が root:root となっている)を firefox で開くことができていたのだが、jammy への更新後は厳密に file owner が firefox のプロセスを起動しているユーザと一致していないとアクセスが弾かれるようになってしまった. ダウンロード先については owner が違っていても保存はできる. しかし firefox 経由でファイルブラウザを開くことはできない模様(この辺の問題や snap から deb 版へ差し戻す方法などは firefox snap で検索すると色々出てくる).

xdg-desktop-portal?

調べている過程で firefox は dbus 上のサービスを通してファイルやディレクトリを開く仕組みも持っているらしいことが分かった. フォルダを開く部分を xdg-desktop-portal の諸実装が担っていて about:configwidget.use.. でその辺の設定を変更できるらしい.

lxqt-mimeapps.list

これは focal の頃からかもしれないが、デフォルトアプリの設定は ~/.config/mimeapps.list ではなく ~/.config/lxqt-mimeapps.list を参照しているように見える. ファイルブラウザは inode/directory に対して設定する. 開けるアプリケーションは /usr/share/applications/*.desktop として配置されている. 記述例:

[Default Applications]
image/jpeg=lximage-qt.desktop
inode/directory=pcmanfm-qt.desktop

Window manager

Window manager がアンインストールされており詰みかけた(一度再起動・ログアウトすると GUI でログインできない状態)が外から SSH で openbox をインストールすることにより事なきを得た. 最悪 root で safe mode 起動すれば何とかなったとは思うが..

systemd-timesyncd

jammy への更新後、timedatectl で NTP service n/a と出るので timedatectl set-ntp on したところ NPT not supported と言われてしまった.
systemd に systemd-timesyncd.service が入っていなかった(消えた?)ので apt でインストールして解決(これを機に chrony へ変えてもよかったかも).

Discussion