SJ blog
Qubes OS
Z

信頼度ランク

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 で