Ubuntu 22.04 への更新
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 処理.
上記のスクリプトだと不十分で適当に書き換えが必要.
依存関係の解決
アップグレードの計算中に解決できない問題が発生しました。
これはおそらく以下に起因します:
*非公式なソフトウェアパッケージ
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:config
の widget.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