Hello World (Ubuntu)

Ubuntu で webkit2gtk などの依存パッケージ・rustup・Node.js を入れ、Tauri 2 アプリを npm run tauri dev で起動するまで。Fedora / Arch のパッケージ名も掲載。

環境構築 対象: Tauri 2.x 更新日: 読了目安: 約6分 env-003
目次
  1. 1. システム依存パッケージのインストール
  2. Fedora の場合
  3. Arch Linux / Manjaro の場合
  4. 2. Rust のインストール
  5. 3. Node.js のインストール
  6. 4. プロジェクトの作成
  7. 5. アプリの起動
  8. 動作確認
  9. よくあるエラーと対処法
  10. The system library 'webkit2gtk-4.1' required by crate 'webkit2gtk-sys' was not found
  11. Ubuntu 20.04 で libwebkit2gtk-4.1-dev が見つからない
  12. ウィンドウが真っ白になる / 表示が崩れる (仮想マシン・NVIDIA)
  13. error: linker 'cc' not found
  14. npm ERR! で Node.js のバージョン不足を指摘される
  15. OS ごとの違いと注意点
  16. 関連レシピ

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 では拡張機能なしだとトレイ自体が表示されません。

関連レシピ

参考リンク(公式ドキュメント)

Web Ninja

この記事を書いた人

Web Ninja ウェブエンジニア (Web Engineer)

会社員ネットワークエンジニアから独立してかれこれ 25 年以上 Web エンジニアとして活動中。普段は JavaScript と Node.js を自在に操り、時には C++ や Perl といった古流の技も嗜みます。近年は Tauri × Rust という新たな武器を手に、デスクトップアプリ開発の最前線を駆け抜けています。「作りたい」を「作れる」に変えるための、実践的な「技」をお届けします。

お問い合わせ: tauri.ninja@gmail.com

内容の誤り・動かないコードを報告する