flatpakコマンドの使い方|Linuxでのインストール・基本操作からSnap・AppImageとの違いまで

コマンドリファレンス環境&ワークフロー

flatpak は、Linux環境においてディストリビューションの差異を超えてアプリケーションを安全かつ確実に実行・管理するパッケージ管理システム(サンドボックス型パッケージ管理ツール)です。
Ubuntu、Debian、Fedora、Arch Linuxなどの主要OSを問わず、同じパッケージ構成の最新アプリケーションを導入・運用できます。

従来の aptdnf のようなディストリビューション依存のパッケージ管理システムと並行して導入することで、OS環境を汚さずに目的の最新アプリ(VLC、GIMP、VS Code、Slackなど)を簡単に利用可能です。
本記事では、Flatpakの基礎概念、インストール手順、Flathubリポジトリの有効化、基本コマンド(検索・インストール・起動・更新・削除)、Snap/AppImageとの違い、日本語入力トラブルの対処法まで詳しく解説します。

Flatpakとは?仕組みと主な特徴

Flatpakは、Linuxデスクトップ環境向けに開発された汎用パッケージ管理&サンドボックス技術です。
従来のパッケージマネージャでは「OSのバージョンやライブラリの依存関係(いわゆる依存関係地獄)」によって新しいアプリがインストールできない問題がありましたが、Flatpakではこの課題を以下の仕組みで解決しています。

  • ディストリビューション非依存(Cross-Distribution):どのLinuxディストリビューションでも全く同じビルドのアプリケーションを実行できます。
  • サンドボックス(Sandbox)による安全な隔離bubblewrapcgroups 技術を利用し、アプリをホストシステムや他のプロセスから隔離して実行します。
  • 共通ランタイム(Runtimes)の共有:GNOME、KDE、Freedesktopなどの共通基盤ライブラリを「ランタイム」として共有するため、アプリごとに重複したライブラリを全て抱え込む無駄を軽減します。
  • Flathubとの連携:世界最大の公式アプリケーションストア・リポジトリ「Flathub」から数千種類以上のアプリを安全にダウンロード可能です。

Flatpak vs Snap vs AppImage vs apt/dnf の比較

Linuxにおけるパッケージ管理形式には、従来型の apt / dnf に加え、次世代型の FlatpakSnapAppImage が存在します。それぞれの特徴を整理しました。

比較項目apt / dnfFlatpakSnapAppImage
主導組織 / コミュニティ各ディストリビューションIndependent (Freedesktop/Red Hat)Canonical (Ubuntu)Independent
主な対象OS全体・サーバー・CLI/GUIデスクトップGUIアプリサーバー・CLI・GUIアプリ全般単一実行ファイル・ポータブル
サンドボックス隔離なし(直接システム実行)強力(bubblewrapベース)強力(AppArmorベース)標準ではなし(オプション)
中央リポジトリ各OS公式ミラーFlathubSnap Storeなし(個別に配布)
自動更新OS更新時(手動/cron)コマンドまたはGUIで実行バックグラウンドで強制自動更新手動(更新ツール連携)
起動速度・サイズ軽量・超高速中(ランタイム初回取得が必要)やや遅い(SquashFS展開)高速(単一ファイル実行)

選定の目安

  • OSの基盤ツールやサーバー用ミドルウェア(nginx, MySQLなど)は aptdnf を使用。
  • 最新のデスクトップGUIアプリや安全性を重視するアプリは Flatpak を使用。
  • Ubuntu中心の環境やCLIサービスツールは Snap を使用。
  • インストール不要でUSB等から持ち運んで動かしたい場合は AppImage を使用。

Flatpakのインストールと初期設定

Flatpakを利用するには、まず利用中のLinuxディストリビューションに flatpak パッケージを導入し、アプリリポジトリ「Flathub」を登録します。

1. 主要ディストリビューションでのインストール

Ubuntu / Debian 系の場合:

sudo apt update
sudo apt install -y flatpak

Fedora 系の場合(標準でプリインストール済み):

sudo dnf install -y flatpak

Arch Linux / Manjaro の場合:

sudo pacman -S flatpak

2. Flathub リポジトリの有効化

Flatpak本体を入れただけではアプリを検索・ダウンロードできません。以下のコマンドを実行して公式リポジトリ Flathub を追加します。

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

設定反映のコツ:Flathubを追加した後は、システムを再起動するか再ログインを行うと、デスクトップ環境(GNOME SoftwareやKDE Discoverなど)や環境変数が正しく読み込まれます。

Flatpakの基本コマンド・使い方一覧

コマンド説明主な使用例
flatpak search <語句>Flathub上のアプリを検索するflatpak search vlc
flatpak install <ID>アプリケーションをインストールするflatpak install flathub org.videolan.VLC
flatpak run <ID>インストール済みアプリを起動するflatpak run org.videolan.VLC
flatpak listインストール済みのアプリ・ランタイム一覧flatpak list --app
flatpak updateすべてのFlatpakアプリを一括更新するsudo flatpak update
flatpak uninstall <ID>指定したアプリケーションを削除するflatpak uninstall org.videolan.VLC
flatpak uninstall --unused使われていない依存ランタイムを削除するflatpak uninstall --unused
flatpak info <ID>アプリの詳細情報・権限を表示するflatpak info org.videolan.VLC

具体例で学ぶ Flatpak の実行ステップ

1. アプリケーションの検索

目的のアプリ名やキーワードで検索します。

flatpak search vlc

出力例:

Name            Description                   Application ID       Version  Branch Remotes
VLC             VLC media player             org.videolan.VLC     3.0.20   stable flathub

検索結果に表示される Application ID(例: org.videolan.VLC)が操作に必要な識別子となります。

2. インストール

リポジトリ名(flathub)と Application ID を指定してインストールします。

flatpak install flathub org.videolan.VLC

出力例:

Looking for matches…

Required runtime for org.videolan.VLC/x86_64/stable (runtime/org.kde.Platform/x86_64/6.6) found in remote flathub

Do you want to install it? [Y/n]: y

Installing…
1. [✓] org.kde.Platform.Locale                 6.6         flathub
2. [✓] org.videolan.VLC                        3.0.20      flathub

Installation complete.

3. アプリケーションの起動

ターミナルから起動する場合は flatpak run を使用します(GUIのアプリケーションメニューにも自動でアイコンが追加されます)。

flatpak run org.videolan.VLC

4. インストール済みアプリの一覧表示

インストールされているアプリのみを確認したい場合は --app オプションを付けます。

flatpak list --app

出力例:

Name            Application ID           Version   Branch  Installation
VLC             org.videolan.VLC         3.0.20    stable  system
Visual Studio Code com.visualstudio.code 1.85.0    stable  system

5. アップデートと不要ファイルの削除

全アプリを最新状態に一括更新します。

flatpak update

アプリ削除後に使われなくなった依存ランタイムをクリーニングしてディスク容量を空けます。

flatpak uninstall --unused

実務・運用で役立つ応用テクニック

1. 起動用コマンドエイリアス(alias)の作成

flatpak run org.videolan.VLC と毎回打つのは長いため、~/.bashrc~/.bash_aliases にエイリアスを設定しておくと便利です。

# ~/.bashrc に追加
alias vlc='flatpak run org.videolan.VLC'
alias code='flatpak run com.visualstudio.code'

設定適用:

source ~/.bashrc
vlc

2. ユーザー権限での個別インストール(–user オプション)

sudo 権限がない環境や、自分のホームディレクトリ内(~/.local/share/flatpak/)だけにアプリをインストールしたい場合は --user を使用します。

flatpak install --user flathub org.gimp.GIMP

3. サンドボックス権限の確認と調整(flatpak override / Flatseal)

Flatpakアプリはデフォルトでアクセス権限が制限されています。特定フォルダ(例: ~/shared-data)への読み書き権限を追加したい場合は override コマンドを実行します。

flatpak override --filesystem=/home/user/shared-data org.videolan.VLC

便利なGUIツール:権限設定を画面上で直感的に変更したい場合は、Flatpak製の権限管理アプリ「Flatsealcom.github.tchx84.Flatseal)」をインストールするのが最もおすすめです。

注意点とトラブルシューティング

1. ディスク消費量が大きくなる

Flatpakは動作に必要な共通ランタイム(数100MB〜数GB)を個別に保持するため、従来の apt 等よりディスク使用量が増加します。
定期的に flatpak uninstall --unused を実行して不要な過去バージョンのランタイムを削除してください。

2. 日本語入力(FCITX / IBus)が動かない場合

サンドボックスの隔離機能により、ホストの日本語入力プロセスのソケットや環境変数にアクセスできず、テキスト入力領域で日本語が打てなくなることがあります。
以下のコマンドでソケット・環境変数の上書き許可を試みてください。

# Fcitx5 を使用している場合のソケットアクセス許可
flatpak override --user --env=GTK_IM_MODULE=fcitx <アプリケーションID>
flatpak override --user --env=QT_IM_MODULE=fcitx <アプリケーションID>

よくある質問(FAQ)

Q: aptdnf で入れたアプリと Flatpak で入れた同名アプリは共存できますか?
A: はい、完全に隔離された別のパスに管理されるため安全に共存可能です。

Q: コマンドを使わずGUIだけで操作できますか?
A: はい、Ubuntuの「Ubuntu Software(GNOME Software)」やKDEの「Discover」にFlatpakプラグインを入れることで、スマホアプリ同様の感覚で導入できます。

まとめ・関連記事

Flatpakは、Linux環境における依存関係のバッティング問題やセキュリティリスクを解決し、常に最新のデスクトップアプリを安全に使える強力なツールです。
Linuxでのパッケージ管理や環境構築については、以下の関連記事もぜひ参考にしてください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント