SnapからFlatpakへ:乗り換えたことでLinuxアプリ管理が快適になった理由
Afamは2018年からMake Tech Easierでテック系記事の執筆を始め、以来、Windows、Linux、オープンソースツールを扱う高品質なガイド、レビュー、ヒント、解説記事で確かな評価を築いてきました。Technical Ustad、Windows Report、Guiding Tech、Alphr、Next of Windowsといった主要サイトにも寄稿しています。
コンピュータサイエンスの学位を持つほか、データプライバシーとセキュリティの強い提唱者でもあり、Fuzo Tech YouTubeチャンネルでは関連するヒントやチュートリアルを公開しています。仕事以外の時間は家族との時間、サイクリング、ガーデニングを楽しんでいます。
Ubuntuは私が最初に試して気に入ったLinuxディストリビューションのひとつでした。だからこそ、当然のように「ネイティブ」なユニバーサルパッケージ形式であるSnapを選んでいました。ところが最近Flatpakを試してみて、長年システム側の問題だと思い込んでいた細かな不具合のいくつかが、実はSnapのサンドボックス化が引き金になっていたことに気づいたのです。今では十分にFlatpakを使い込み、総合的にはFlatpakの方が優れた選択肢だと確信するに至りました。
フラストレーションの正体
Snapが邪魔をするようになった

Snapはバックグラウンドでは概ね問題なく動作しており、通常はアップデートもきちんとキューに入り、必要なアプリもストアで入手できます。問題はSpotifyのような特定のアプリで発生します。snapdの常駐デーモンとキューに積まれた更新処理の組み合わせにより、アプリが「更新保留中(pending refresh)」の状態で起動してしまうことがあるのです。体感的には、わずかな起動遅延として現れます。
この症状はVS Codeなど他のSnapアプリでは見られないようです。しかし別の問題もあります。例えばFirefoxでは、動画再生が時々カクついたり、スクロールが滑らかでなかったりします。Snapのコンファインメント(隔離機構)はデフォルトでGPUへの適切なアクセスを妨げるため、コマ落ちやスクロールのもたつきにつながるのです。
そして何故か、私はSpotifyの遅延を個人的な問題として受け止めてしまいました。snapdのバックグラウンドオーバーヘッド、厳格なコンファインメント、そしてオーディオシステムへのクリーンで直接的な経路を必要とするアプリ——この組み合わせが最悪だったのです。しかもSnap StoreはCanonicalが独占しているため、入手先に柔軟性がありません。ディストリビューションのリポジトリがあくまで出発点にすぎないネイティブパッケージとは対照的です。
Flatpakは最初から軽快だった
邪魔する要素が少ない

Flatpakは劇的な速度向上や目立つ新機能をもたらしたわけではありません。それでも、基本的な動作を妨げることなく処理してくれる点が大きかった。アップデートを適用するタイミングを自分で制御できるため、アプリを開くときに更新の適用を待たされることはありませんし、バックグラウンドで常駐デーモンが介入することもありません。
また、厳選された信頼できるアプリが適度な数揃っており、必要なアプリの大半をカバーしています。さらにFlatsealのおかげで、システム全体の設定に触れることなく、アプリごとの権限を細かく調整できます。
並べて比較すると、Flatpakにはささやかですが、実際に重要な場面で効いてくる改善点で優位性があります。
| 機能 | Snap | Flatpak |
|---|---|---|
| ストアの開放性 | 単一・Canonical管理 | Flathub + 追加リモート対応 |
| バックグラウンドプロセス | snapdが常時稼働 | 常駐デーモンなし |
| アップデート制御 | 自動・キュー方式 | ユーザーが制御 |
| テーマ統合 | 部分的で不具合も多い | 改善傾向だが未完成 |
| CLI体験 | snap run app | flatpak run org.app.Name(やや冗長) |
Snapのマウントが生む散らかり
Snapがインストールされたシステムでlsblkを実行すると、その出力に覚悟が必要です。アプリが10個あれば、少なくとも10個のloopエントリが並びます。これは各Snapが圧縮されたSquashFSイメージをループデバイスとしてマウントするためです。その結果、大量のloopエントリがブロックデバイス一覧を埋め尽くし、GNOME Disksなどのユーティリティも散らかった状態になります。
これはアトミックなアップデートと強力な分離を実現するための、Snap設計上の意図的な挙動です。ただしその代償として、一目では全体像を掴みにくい混雑したシステムになってしまうのです。
一方のFlatpakは、リポジトリ配布と共有ランタイムにOSTreeを採用し、fuse-overlayfs経由でマウントするため、ループデバイスを使用しません。複数のアプリが同じ重複排除済みライブラリプールを共有する仕組みで、個別のプライベート環境をマウントしないため、ファイルシステムはよりクリーンで監査しやすい状態に保たれます。
Flatpakにも弱点はある
それでもSnapより扱いやすかった

Flatpakのサンドボックス化は、深いシステムアクセスを必要とする一部のアプリでつまずくことがあります。私自身、VSCodiumでその経験があり、GTKテーマの統合も完全にシームレスとは言えません。
しかし大きな違いは、Flatpakの問題はたいてい「見える」こと、そして修正可能なことです。問題が起きたら原因を特定し、多くの場合はFlatsealで権限を調整するだけで解決できます。これはSnapとは対照的です。Snapの遅延は不可視で、Snapではなくシステムのせいにしてしまいがちです。まるでシステムがこちらに敵対しているかのようにすら感じられます。Flatpakが決定的だったのは、「コントロールを取り戻せた」点にあります。
乗り換え作業自体もスムーズでした。Flatpakのインストールは簡単で、Flathubの有効化もすぐに完了します。Spotifyなどのアプリも難なく移行できました。ただし一点だけ注意点があります。ubuntu-advantage-toolsのような一部のパッケージが、snapdを黙って再インストールすることがあるのです。この可能性を知らないと、Snapを完全に排除したつもりでも、実際にはまだ残っていると勘違いしてしまうかもしれません。
断定ではなく、判断基準として
強調しておきたいのは、私がSnapに対して行ったのは「降格」だということです。Snapは今も私のシステムの一部として残っています。日常的に使うアプリの多くはFlatpakを好みますが、一部のシステムレベルツールはSnapのままにしています。それらは本来そこに属するものだからです。どちらかが常に優れているわけではなく、最良のツールとは特定の仕事に合ったものなのです。
私自身は次のように使い分けています。
| シナリオ | 最適な選択 |
|---|---|
| 日常的なデスクトップアプリ(Spotify、GIMP、Inkscape) | Flatpak |
| Ubuntuのシステムツール(コアユーティリティ、LXD) | Snap |
| Ubuntu上のFirefox / Thunderbird | どちらでも可——両方ともアップストリーム公式メンテナンス |
| 厳密な権限調整が必要なアプリ | Flatpak + Flatseal |
| サーバーデーモンやバックグラウンドサービス | Snap |
| ディストロ間の最大互換性が必要な場合 | Flatpak |
気づけば、Linuxのパッケージマネージャーへの理解が深まるほど、より多くのアプリをFlatpakへ移行させるようになっていました。
-
Budgieデスクトップ:軽量なのに本気で作業がはかどるLinuxデスクトップ環境
著者プロフィール:Roine Bertelson(ストックホルム在住)。AIツール、Linux、コンシューマーテクノロジー、サイバーセキュリティ、SEOコンテンツの分野で20年以上の実務経験を持つテクニカルライター兼デジタル戦略家。複雑なトピックを明快で実用的なガイドに変換することを得意とし、紹介するツールを実際に使い込み、意図的に壊して検証する姿勢で読者からの信頼を獲得している。GNOMEとの別れは、劇的な破局ではなかった。むしろ、ゆっくりとお互いに距離ができていくような関係だった。技術的には何も問題がないのに、すべてがどこか微妙に噛み合わない——もう興味のないメッセージに「うん、そうだね」
-
Linuxのfindコマンド徹底解説!基本構文から実践的な使用例まで
新規インストール直後のLinuxには、どれくらいのファイルが含まれているかご存知ですか?Pop!_OSを例に挙げると、なんと31,000個以上のファイルが存在します。これはドキュメントの作成や音楽の保存、PDFのダウンロード、写真の整理などを始める前の話です。そのため、必要なファイルやフォルダを必要なときに素早く見つけるのは、意外と難しい作業になります。この記事では、Linuxのfindコマンドの使い方を、実用的なコマンド例とともに詳しく解説していきます。findコマンドの基本構文構文とは、単語やコマンドの組み合わせ方のことです。普通の文章でも語順を入れ替えると意味不明になるように、コマンドも