Ubuntu (および Debian 系) で Tauri 2 の開発を始めるための最初の一歩です。Linux 版の Tauri は GTK 3 上で WebKitGTK をウィンドウに載せる構成なので、Windows や macOS と違って開発用ヘッダーを含むシステムパッケージを事前に入れる必要があります。ここを飛ばすと Rust のコンパイル途中で pkg-config のエラーが出て止まります。
対象は Ubuntu 22.04 / 24.04 と Debian 12 以降です。Tauri 2 は webkit2gtk-4.1 (libsoup 3 系) を要求するため、4.0 しか提供されない Ubuntu 20.04 は対象外です。
1. システム依存パッケージのインストール
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev
libwebkit2gtk-4.1-dev が WebView 本体 (GTK 3 も依存として入る)、libssl-dev が HTTP プラグインの TLS、libayatana-appindicator3-dev がシステムトレイ、librsvg2-dev が SVG アイコン用です。
Fedora の場合
sudo dnf check-update
sudo dnf install webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
libappindicator-gtk3-devel \
librsvg2-devel \
libxdo-devel
sudo dnf group install "c-development"
Arch Linux / Manjaro の場合
sudo pacman -Syu
sudo pacman -S --needed webkit2gtk-4.1 \
base-devel \
curl \
wget \
file \
openssl \
appmenu-gtk-module \
libappindicator-gtk3 \
librsvg \
xdotool
Arch は開発ヘッダーが本体パッケージに含まれるため -dev 系の名前がありません。
2. Rust のインストール
ディストリビューションの rustc パッケージは古いことが多いので、公式の rustup を使います。
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
1) Proceed with standard installation を選びます。完了後、ターミナルを開き直すか次を実行して PATH を反映します。
. "$HOME/.cargo/env"
rustc --version
cargo --version
3. Node.js のインストール
Ubuntu の apt install nodejs は LTS より数世代古いバージョンが入る (22.04 では 12 系、24.04 では 18 系) ため、Vite が動きません。nvm でユーザー単位に LTS を入れるのが手軽です。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
# ターミナルを開き直してから
nvm install --lts
node -v
npm -v
システム全体に入れたい場合は NodeSource のリポジトリ (nodesource/distributions) を使います。
4. プロジェクトの作成
npm create tauri-app@latest
- Project name:
hello-tauri - Identifier:
com.example.hello-tauri - Choose which language to use for your frontend:
TypeScript / JavaScript - Choose your package manager:
npm - Choose your UI template:
Vanilla - Choose your UI flavor:
TypeScript
cd hello-tauri
npm install
5. アプリの起動
npm run tauri dev
初回は依存クレートのコンパイルに数分かかります。webkit2gtk-sys や gtk-sys といった -sys クレートのビルド段階でシステムライブラリの有無が検査されるので、ここでエラーが出たら手順 1 を見直します。
動作確認
ウィンドウが開き「Welcome to Tauri」で始まる見出しと入力欄が表示されれば成功です。名前を入れて「Greet」を押すと Rust 側の greet コマンドが Hello, <名前>! You've been greeted from Rust! を返します。ウィンドウ内を右クリック → 「要素の詳細を表示」で WebKit のインスペクタが開き、コンソールログも確認できます。
よくあるエラーと対処法
The system library 'webkit2gtk-4.1' required by crate 'webkit2gtk-sys' was not found
libwebkit2gtk-4.1-dev が入っていません。エラー文の続きに .pc ファイル名 (webkit2gtk-4.1.pc など) が出るので、それを含む -dev パッケージを apt install します。javascriptcoregtk-4.1 や libsoup-3.0 が名指しされた場合も、libwebkit2gtk-4.1-dev で解決します。
Ubuntu 20.04 で libwebkit2gtk-4.1-dev が見つからない
20.04 のリポジトリには 4.0 しかありません。Tauri 2 では 4.1 が必須のため、22.04 以降へアップグレードするか、Docker や別マシンでビルドしてください。
ウィンドウが真っ白になる / 表示が崩れる (仮想マシン・NVIDIA)
WebKitGTK の GPU 合成が環境と相性が悪いときに起きます。次の環境変数で回避できることが多いです。
WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev
# それでも駄目なら
WEBKIT_DISABLE_DMABUF_RENDERER=1 npm run tauri dev
error: linker 'cc' not found
build-essential が入っていません。手順 1 を実行してください。
npm ERR! で Node.js のバージョン不足を指摘される
apt の古い Node.js が使われています。which node が /usr/bin/node を返すなら、sudo apt remove nodejs してから nvm で入れ直します。
OS ごとの違いと注意点
- WSL2: Windows 11 の WSLg があれば
tauri devのウィンドウが Windows 側に表示されます。ただし作られるのは Linux バイナリなので、Windows 向け配布物には Windows 側の環境が必要です。 - Wayland / X11: 既定では GTK が自動判定します。透明ウィンドウや位置指定など一部の API は X11 でしか動きません。
- 配布物:
tauri buildで.deb・.rpm・AppImage が作れます。AppImage 作成では補助ツールが自動ダウンロードされるため、初回はネットワーク接続が必要です。 - システムトレイ: 実行環境にも
libayatana-appindicator3(ヘッダーなし版) が必要です。GNOME では拡張機能なしだとトレイ自体が表示されません。
