信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
Qubes OS にアプリケーションをインストールして使う
Qubes OSでのアプリインストールの基本(テンプレートVM経由)、アプリメニューへの追加、Flatpak/Snapの使い方、dom0でのGUIアプリ制限を解説します。
一言結論
Qubes OSでのアプリインストールは必ずテンプレートVMで行う必要があり、AppVMにインストールしても再起動で消えるというアーキテクチャを理解することが、環境構築のすべての前提となる。
Qubes OS でのアプリインストールの基本
Qubes OS では、アプリのインストールは テンプレートVM で行います。AppVM にインストールしても、再起動すると消えます。
テンプレートVM でインストール → AppVM で使える
テンプレートVM でのインストール
Fedora テンプレート
# Fedora テンプレートのターミナルを開く
qvm-run fedora-40 "xterm"
# dnf でインストール
sudo dnf install -y firefox
sudo dnf install -y libreoffice
sudo dnf install -y vlc
# RPM Fusion を追加(プロプライエタリなコーデックなど)
sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo poweroff # 完了後シャットダウン
Debian テンプレート
# Debian テンプレートのターミナルを開く
qvm-run debian-12 "xterm"
sudo apt update
sudo apt install -y firefox-esr
sudo apt install -y libreoffice
sudo apt install -y vlc
sudo poweroff
アプリメニューへのショートカット追加
テンプレートにアプリをインストールしても、AppVM のメニューに自動では出ません。
GUI で追加
Qubes Manager → AppVM を選択 → Applications タブ → 使いたいアプリにチェック → OK
コマンドラインで追加
# dom0 ターミナルで
qvm-sync-appmenus work
# 特定のデスクトップファイルを確認
qvm-run work "ls /usr/share/applications/"
デスクトップ右クリック → Edit Applications からも設定できます。
Flatpak の使用
Flatpak は AppVM 内で独立して動くアプリのパッケージ形式です。
# AppVM のターミナルで(AppVM自体にインストール=永続化したい場合はbind-dirsを使う)
# または テンプレートにFlatpakをインストールしてからFlathubアプリを入れる
# テンプレートVM で Flatpak 対応
sudo dnf install -y flatpak # Fedora
sudo apt install -y flatpak # Debian
# Flathub リポジトリの追加
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# アプリのインストール
flatpak install flathub org.signal.Signal
Flatpak のデータは /home に保存されるため、AppVM のホームディレクトリに残ります。
Signal(セキュアメッセンジャー)のインストール例
# messaging という専用 AppVM を作成
qvm-create --template fedora-40 --label yellow messaging
# テンプレートに Signal をインストール
qvm-run fedora-40 "xterm"
# fedora-40 のターミナルで
sudo dnf install -y flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.signal.Signal -y
sudo poweroff
# messaging AppVM でSignalを起動
qvm-run messaging "flatpak run org.signal.Signal"
KeePassXC(パスワードマネージャー)を vault VM で使う
# vault VM はネットワークなしの最も安全な環境
qvm-prefs vault netvm '' # ネットワークを切る
# テンプレートに KeePassXC をインストール
qvm-run fedora-40 "sudo dnf install -y keepassxc"
# vault から起動
qvm-run vault "keepassxc"
dom0 でのアプリ制限
dom0 には絶対にインターネットからアプリをインストールしないこと。
dom0 のパッケージ管理は qubes-dom0-update のみを使います:
sudo qubes-dom0-update qubes-manager
dom0 の状態は Qubes OS システム全体の信頼性に直結します。
AppVM でのアドホックなアプリ使用
テンプレートを変更せずに、AppVM で一時的にスクリプトや小さなツールを使う場合:
# Pythonスクリプトの実行(Python はほぼどのテンプレートにも入っている)
python3 my-script.py
# pip でのインストール(/home に入る)
pip3 install --user requests
--user フラグで /home/user/.local にインストールすれば AppVM のデータとして保持されます。
よくある質問
Q: AppVM にインストールしたアプリが消える
A: テンプレートVMにインストールする必要があります。AppVM のインストールは再起動で消えます(/home に入るものを除く)。
Q: 全VMに同じアプリを入れたい
A: テンプレートVMにインストールすれば、そのテンプレートを使う全AppVMで使えます。
Q: 特定のVMだけに異なるバージョンのアプリを入れたい
A: 別のテンプレートVMをクローンして、そちらにインストールします。
まとめ
| やること | 場所 |
|---|---|
| アプリのインストール | TemplateVM |
| メニューへの追加 | qvm-sync-appmenus または Qubes Manager |
| 一時的なスクリプト | AppVM(再起動で消えてもよいなら) |
| パスワードマネージャー | vault VM(ネットワークなし) |
| セキュアなブラウザ | Tor Browser は anon-whonix で |