2025年6月30日月曜日

snapでインストール可能なアプリの古いバージョンを使う


背景

ubuntu22.04のchromiumで日本語が入力できなが不具合が発生しています。
古いバージョンにダウングレードすることで一旦回避できたものの、ダウングレードの方法を把握するのに手間取ったので備忘録として記事を残します。

使ったもの

ubuntu22.04
snap

refreshにrevision番号を付けて実行すれば古いバージョン(revision)にできる

記事を書いている時点でのchromiumの最新版は138.0.7204.49 revision 3186ですがこれは日本語が入力できない不具合を持っているので、自分は下記のコマンドで日本語が入力可能な138.0.7191.0 revision 3149に戻しました。
sudo snap refresh chromium --revision 3149

revision付きのrefreshではなくrevertコマンドを使えば1つ前の版に戻れますが、それより前に戻したい場合は上記のようにrevisionを付けたコマンドの実行が必要です。

インストール可能なrevision一覧の取得方法は無さそう

自分が探した範囲では古いrevisionも含めた一覧の取得方法は見つからなかったです。
ご存知の方がいらっしゃれば、コメントなどで教えていただけると嬉しいです。

ちなみに、chromiumのrevisoin3149が日本語入力可能と把握したときは、不具合があるrevisonの番号から1つずつ番号を下げて動作確認しました。

現行最新版とインストール済みの型式情報の表示なら、下記コマンドで行えます。
snap info chromium

余談: chromiumダウングレード時に実行不能になるエラーはsnapの共有ファイルの一部を消せば直ることがある

chromiumの135.0.7049.84 revision 3107は日本語入力できるものですが、138.0.7204.49 revision 3186から戻すと共有ファイルに不整合が発生するらしく下記のエラーが発生して実行不能になります。
libva error: /snap/chromium/3107/gnome-platform/usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
[0629/235049.030110:ERROR:ptracer.cc(605)] ptrace: Input/output error (5)
[0629/235049.130983:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[0629/235049.155780:ERROR:elf_dynamic_array_reader.h(64)] tag not found

アプリのrevisionを変えても保持される共有ファイルは~/snap/[アプリ名]にあるので、それを移動させると動く可能性があります。
chromiumの場合はお気に入りやセッション情報などもそこに保存されているので、復旧できるように消す前にどこかにコピーを取るのをお勧します。

試行錯誤したところ、上記のエラーは下記のコマンドでDefault/Sync Dataを消せば動くと分かりました。
rm -r ~/snap/chromium/common/chromium/Default/Sync\ Data*

おわり

snapのrefreshコマンドにrevisonを付ければアプリの古い版がインストールできると分かりました。

参考

Revision package management

0 件のコメント :