Snapアプリのアップデート処理改善
Snapアプリのアップデート処理が改善されました。アップデートのタイミングが噛み合わない問題の解消
Snapはバックグラウンドで自動的にソフトウェアをアップデートする仕組みを持っています。そのためSnapはアップデートの有無を確認した後、ソフトウェアのアップデートがあれば、そのソフトウェアをアップデートしようとします。
実行中のSnapアプリはアップデートできない
しかしこの時アップデート対象のアプリが実行中だった場合、Snapはアップデートを実行できません。snap refresh firefox
error: cannot refresh "firefox": snap "firefox" has running apps (firefox), pids:
1870,2159,2193,2287,2312,2425,2427,2437
error: cannot refresh "firefox": snap "firefox" has running apps (firefox), pids:
1870,2159,2193,2287,2312,2425,2427,2437
またSnapはユーザーにアップデートの実行を促すため、以下のような通知を表示します。
この通知には、Snapアプリ(上記の通知ではFirefox)のアップデートを保留したこと、そしてSnapアプリをアップデートするために、そのSnapアプリを終了して欲しいとのメッセージが表示されています。
ユーザーの環境によってはこの通知が日々表示され、ユーザーにとって煩わしさを感じさせる問題につながっていました。
特にウェブブラウザーのように常に起動しているアプリや、Ubuntu Softwareのように常駐するようなアプリでは、都合よくアップデートが実行されず、通知が日々表示される状況になりかねません。
またアプリを閉じてもアップデートのタイミングが噛み合っていないと、やはりアップデートが実行されませんし、手動によるアップデートも特にカジュアルユーザーにとって煩わしさを感じるでしょう。
アップデート処理の改善
そこでSnapはアップデート処理を改善し、アップデートを保留する代わりに、アプリを終了したタイミングもしくはシステムを再起動したタイミングで、アップデートを適用するように改善されました。これを実現するためSnapは、アプリのアップデートが見つかった場合、そのアプリをバックグラウンドでダウンロードしておき、また可能であれば事前に初期化し、アップデートに備えます。
あとは上記のタイミングが来た時に、アップデートを適用します。
ユーザーは該当するアプリを終了するか、もしくはPCを再起動すれば、アップデートが適用されるようになります。
この改善はすべてのデスクトップ向けSnapアプリに適用されます。
改善はsnapd 2.59から
本改善は「snapd 2.59」から行われます。ちなみに現時点で「Ubuntu 22.04 LTS」の「snapd」は、「snapd 2.58」が提供されています。
将来的に「snapd 2.59」が提供されるものと思われます。
現在開発中の「Ubuntu 23.04」では、すでに「snapd 2.59」になっています。
Snapアプリのアップデートタイミングの調整も可能
本件とは別件ですが「snap refresh --hold」コマンドを利用することで、Snapアプリの自動アップデートのタイミングを調整できます。詳細は以下を参照してください。
Raspberry PiでSnap版Firefoxがソフトウェアレンダリングになる問題の修正
Raspberry PiでSnap版Firefoxがソフトウェアレンダリングになる問題が修正されました。これはSnap版FirefoxがRaspberry PiのGPUを検出できない、あるいはハードウェアアクセラレーションを有効にできない問題でした。
問題の修正
この問題はアップストリームのMesaに原因があり、Mesa 22.2でこの問題が修正され、最新のSnap版Firefoxに含まれるようになりました。ユーザーはSnap版Firefoxをアップデートするだけでこの問題が解消され、Raspberry PiのGPUを効果的に活用できるようになります。
これにより動画再生など描画周りのパフォーマンスが改善されます。
Waylandでさらにパフォーマンスが向上
現在Snap版FirefoxはWayland環境では、Xwayland上で実行されています。「MOZ_ENABLE_WAYLAND=1」環境変数を指定してSnap版Firefoxを実行すれば、Snap版FirefoxはWayland上で直接実行されるようになります。
Wayland上で直接実行されているSnap版Firefoxでは、さらにパフォーマンスが改善されます。
ただしWayland上での実行はまだ安定性が十分に確保されておらず、何かしら問題が発生する可能性があります。
Vulkanのサポート改善作業も進行中
さらにパフォーマンスを改善するため、Vulkanに対するRaspberry Pi固有の最適化作業が行われています。Ubuntu 22.04.2 LTSでSnapアプリの起動時間の改善
Snapsは圧縮されており、アプリ利用時にまず圧縮アーカイブを展開する必要があります。以前はシングルスレッドで展開処理を行っていましたが、これをマルチスレッドで処理することでパフォーマンスが改善されています。
特に新しい世代のCPUでは、これによるパフォーマンスの大きな向上が期待できます。
元々この改善は「Ubuntu 22.10」で実施された改善ですが、「Ubuntu 22.04.2 LTS」でもこの改善が取り込まれました。
Snap版Firefoxの改善
その他Snap版Firefoxの改善です。1.ネイティブメッセージングのサポート
ネイティブメッセージングがサポートされました。- webextensions: add a portal for managing WebExtensions native messaging servers
- Integration with a new WebExtensions XDG desktop portal for native messaging on Linux
ネイティブメッセージングの役割については、以下を参照してください。
ネイティブメッセージングのサポートにより、WebExtensionsが利用できるようになります。これにより以下のような拡張機能が利用できるようになりました。
2.ホスト側のスペルチェック辞書が利用可能に
ホスト側にインストールされたスペルチェック辞書を利用できるようになりました。3.PDFビューアーでホスト側のフォントが利用可能に
Snap版FirefoxでPDFファイルを表示する際、ホスト側で利用可能なフォントを利用できるようになりました。今後のSnap改善作業
現在行われているSnapの改善作業です。1.事前キャッシュ
システム起動時にGNOME及びKDEのContent snapsを予めキャッシュしておき、これらのContent snapsに依存するデスクトップアプリの起動時間を短縮する狙いが検討及び調査されています。これらのContent snapsは、GNOMEアプリやKDEアプリの土台として活用されているSnapsです。
2.ネットワークマウント
現在Snap版Firefoxでは、ネットワークの共有フォルダーにアクセスできません。現在この問題は調査中ですが、「Ubuntu 23.04」リリース以降に進展が見られるでしょう。