.deb は Debian、Ubuntu、Linux Mint など Debian 系ディストリビューションの標準パッケージ形式です。apt でインストール・アンインストール・依存解決ができ、アプリケーションメニューへの登録やアイコンの配置も自動で行われます。Tauri のバンドラーは dpkg-deb などの外部ツールを使わず自前で .deb を組み立てるため、Debian 系以外の Linux でもビルドできます。ここでは bundle.linux.deb の設定と、同じ要領で作れる .rpm にも触れます。
前提条件
- Linux 上でビルドすること。WebKitGTK 4.1 系の開発パッケージなど Tauri の依存関係が揃っていること(Hello World (Ubuntu))
- 動作確認用に Debian 系の環境(VM や Docker で十分)
プラグインや capability の権限は不要です。
1. tauri.conf.json の設定
.deb は Linux の既定ターゲットに含まれるので、targets: "all" なら設定なしで生成されます。依存関係やファイル配置を制御するときに bundle.linux.deb を書きます。
{
"bundle": {
"targets": ["deb"],
"linux": {
"deb": {
"depends": ["libsqlite3-0"],
"recommends": ["fonts-noto-cjk"],
"section": "utils",
"priority": "optional",
"files": {
"/usr/share/my-notes/README.md": "../README.md"
},
"postInstallScript": "./debian/postinst",
"changelog": "./debian/changelog"
}
}
}
}
depends: 追加の実行時依存。WebKitGTK (libwebkit2gtk-4.1-0) と GTK3 (libgtk-3-0) は Tauri が自動で付けます。システムトレイを使う場合は appindicator 系も自動追加されますrecommends: 必須ではないが入れてほしいパッケージ(CJK フォントなど)files: 配置先の絶対パスをキー、ソースを値にした任意ファイルの追加。OS をまたぐアセットはbundle.resourcesを使い、.deb固有の配置にだけ使いますpostInstallScript/preRemoveScriptなど: メンテナスクリプト。desktopTemplateで.desktopファイルの差し替えもできます
rpm も同時に作る
Fedora / RHEL 系向けの .rpm も同じバンドラーで生成できます。設定キーは bundle.linux.rpm で、depends の中身が RPM のパッケージ名になる点だけ違います。
{
"bundle": {
"targets": ["deb", "rpm"],
"linux": {
"rpm": {
"depends": ["sqlite-libs"],
"release": "1"
}
}
}
}
2. ビルドする
npm run tauri build -- --bundles deb
# rpm も
npm run tauri build -- --bundles deb,rpm
生成物は src-tauri/target/release/bundle/deb/<name>_<version>_amd64.deb と bundle/rpm/<name>-<version>-<release>.x86_64.rpm です。パッケージ名は productName を小文字化・ハイフン化したものになります。
動作確認
# 中身を見る(インストール前)
dpkg -I my-notes_1.0.0_amd64.deb
dpkg -c my-notes_1.0.0_amd64.deb
# 依存関係ごとインストール(先頭の ./ が必須)
sudo apt install ./my-notes_1.0.0_amd64.deb
# 配置されたファイル
dpkg -L my-notes
dpkg -L の出力に /usr/bin/my-notes、/usr/share/applications/My Notes.desktop、/usr/share/icons/hicolor/128x128/apps/my-notes.png が並んでいれば成功です。bundle.resources で同梱したファイルは /usr/lib/my-notes/ に入ります。アンインストールは sudo apt remove my-notes、rpm は rpm -qip と sudo dnf install ./xxx.rpm で確認します。
よくあるエラーと対処法
apt install で依存関係が解決できない
「libwebkit2gtk-4.1-0 : Depends: ... but it is not installable」という趣旨で失敗する場合、配布先のディストリビューションが古く WebKitGTK 4.1 系を提供していません(Ubuntu 20.04 など)。Tauri v2 は 4.1 系を必須とするため、配布先の下限を Ubuntu 22.04 / Debian 12 以降にするか、AppImage で配布します。
インストールできるが起動時に GLIBC のエラーが出る
「version GLIBC_2.39' not found」という趣旨のエラーは、ビルド環境の glibc が配布先より新しいことが原因です。.deb` は glibc を同梱しないので、サポートしたい最も古いディストリビューションでビルドしてください。CI では該当バージョンの Docker イメージを使うのが確実です。
アイコンや .desktop がメニューに出ない
インストール直後はデスクトップ環境のキャッシュが古いことがあります。ログアウト・ログインするか、update-desktop-database と gtk-update-icon-cache を実行してください。productName に日本語やスペースを含めていると .desktop の Exec が正しく解釈されないことがあるので、英数字にしておくのが無難です。
OS ごとの違いと注意点
.debは Debian 系専用です。Fedora / openSUSE には.rpm、配布先が絞れない場合は AppImage を使いますversionの-は Debian の規約上 revision と解釈されるため、1.0.0-beta.1のようなプレリリース表記は避けてください.debは署名されません。HTTPS で配るかsha256sumを併記してください- インストール先の
/usr/lib/<name>は root でしか書けません。実行時に生成するデータはapp_data_dir()配下に置いてください
