Linux用Drop Compress Imageのビルド
このガイドでは、Ubuntu 24.04 LTS(および類似のDebianベースディストリビューション)での開発環境のセットアップとDrop Compress Imageのビルド手順を説明します。
前提条件
開始する前に、以下が必要です:
- Ubuntu 24.04 LTSまたは類似のDebianベースディストリビューション
- ソフトウェアインストール用のsudo権限
- ターミナルコマンドの基本的な知識
ステップ 1: システムパッケージの更新
まず、システムパッケージを更新して最新バージョンであることを確認します:
sudo apt update
sudo apt upgrade -y
ステップ 2: ビルド依存関係のインストール
Tauri開発に必要な基本的なビルドツールとライブラリをインストールします:
# ビルド必須パッケージと開発ライブラリをインストール
sudo apt install -y \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libwebkit2gtk-4.1-dev \
patchelf
パッケージの説明
- build-essential: GCC、G++、makeを提供
- libssl-dev: OpenSSL開発ライブラリ
- libgtk-3-dev: UI用GTK3開発ライブラリ
- libayatana-appindicator3-dev: システムトレイサポート
- librsvg2-dev: SVGレンダリングサポート
- libwebkit2gtk-4.1-dev: TauriのWebView用WebKit
- patchelf: AppImage用ELFバイナリパッチャー
インストールの確認
gcc --version
GCCバージョン13.x以降が表示されます。
ステップ 3: Rustのインストール
Drop Compress ImageはRustで構築されているため、Rustツールチェインをインストールする必要があります。
rustup経由でRustをインストール
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
プロンプトが表示されたら、オプション1(デフォルトインストール)を選択します。
シェルの設定
source $HOME/.cargo/env
永続化するには、シェルプロファイルに追加します:
echo 'source $HOME/.cargo/env' >> ~/.bashrc
source ~/.bashrc
Rustインストールの確認
rustc --version
cargo --version
rustcとcargoの両方でバージョン情報が表示されます。
ステップ 4: Node.jsのインストール
Drop Compress ImageのフロントエンドはVue.jsで構築されており、Node.jsが必要です。
NodeSourceリポジトリ経由でNode.jsをインストール
# Node.js 22.x (LTS) をインストール
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
Node.jsインストールの確認
node --version
npm --version
Node.jsバージョン22.x以降が表示されます。
ステップ 5: pnpmのインストール
Drop Compress Imageは、パフォーマンスとディスク効率を向上させるためにpnpmをパッケージマネージャーとして使用します。
pnpmのインストール
npm install -g pnpm
pnpmインストールの確認
pnpm --version
ステップ 6: vcpkgのセットアップと依存関係のインストール
このプロジェクトではvcpkgを使用してC/C++画像処理ライブラリ(libaom、libavif、libjxl等)を管理します。
vcpkg前提パッケージのインストール
# vcpkgに必要なツールをインストール
sudo apt install -y curl zip unzip tar cmake pkg-config
vcpkgのインストール
# vcpkgをクローン
git clone https://github.com/Microsoft/vcpkg.git ~/vcpkg
# vcpkgをブートストラップ
cd ~/vcpkg
./bootstrap-vcpkg.sh
# 環境変数を設定(~/.bashrc に追加)
echo 'export VCPKG_ROOT="$HOME/vcpkg"' >> ~/.bashrc
echo 'export PATH="$VCPKG_ROOT:$PATH"' >> ~/.bashrc
source ~/.bashrc
依存関係のインストール
自動インストールスクリプトを使用(推奨):
cd ~/path/to/DropWebP/app/src-tauri
./setup-vcpkg.sh
または手動でインストール:
cd ~/vcpkg
# x64 Linux の場合
./vcpkg install aom:x64-linux
./vcpkg install libavif[aom]:x64-linux
./vcpkg install libjxl:x64-linux
./vcpkg install libwebp:x64-linux
./vcpkg install openjpeg:x64-linux
./vcpkg install libjpeg-turbo:x64-linux
./vcpkg install lcms:x64-linux
# ARM64 Linux の場合
./vcpkg install aom:arm64-linux
./vcpkg install libavif[aom]:arm64-linux
./vcpkg install libjxl:arm64-linux
./vcpkg install libwebp:arm64-linux
./vcpkg install openjpeg:arm64-linux
./vcpkg install libjpeg-turbo:arm64-linux
./vcpkg install lcms:arm64-linux
インストールされるライブラリ:
- libaom: AV1エンコーダー(AVIF形式用、必須)
- libavif: AVIF画像フォーマット
- libjxl: JPEG XL画像フォーマット
- libwebp: WebP画像フォーマット
- openjpeg: JPEG 2000画像フォーマット
- libjpeg-turbo: JPEG画像処理(jpegli用)
- lcms: Little CMS カラーマネジメント
インストール確認
./vcpkg list | grep -E "aom|avif|jxl|webp|openjpeg|jpeg|lcms"
ステップ 7: Drop Compress Imageのクローンとビルド
これでDrop Compress Imageをクローンしてビルドする準備が整いました。
リポジトリのクローン
git clone https://github.com/logue/DropWebP.git
cd DropWebP
フロントエンド依存関係のインストール
# すべてのワークスペース依存関係をインストール
pnpm install
Tauri CLI v2のインストール
# Tauri CLI v2をグローバルにインストール
pnpm add -g @tauri-apps/cli@next
アプリケーションのビルド
開発用:
# 開発モードで実行
pnpm dev:tauri
本番用:
# 本番用にビルド
pnpm build:tauri
ビルドされたアプリケーションはapp/src-tauri/target/release/にあります。
ステップ 8: 配布形式
LinuxのTauriは複数の配布形式を生成できます:
AppImage(推奨)
AppImageは、ほとんどのLinuxディストリビューションで動作するユニバーサルパッケージ形式です:
pnpm build:tauri
AppImageはapp/src-tauri/target/release/bundle/appimage/にあります。
Debianパッケージ (.deb)
Debian/Ubuntuベースのディストリビューション用:
pnpm build:tauri
.debパッケージはapp/src-tauri/target/release/bundle/deb/にあります。
インストール:
sudo dpkg -i app/src-tauri/target/release/bundle/deb/*.deb
RPMパッケージ (.rpm)
Red Hat/Fedoraベースのディストリビューション用には、追加ツールのインストールが必要です:
sudo apt install -y rpm
pnpm build:tauri
.rpmパッケージはapp/src-tauri/target/release/bundle/rpm/にあります。
トラブルシューティング
よくある問題
- libwebkit2gtk-4.1がない
webkitライブラリが見つからないエラーが出る場合:# 古いwebkitバージョンを試す sudo apt install -y libwebkit2gtk-4.0-dev - npm/pnpmの権限拒否
# npmグローバルディレクトリの権限を修正 mkdir -p ~/.npm-global npm config set prefix '~/.npm-global' echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrc - ネイティブ依存関係でのビルド失敗
# ビルドキャッシュをクリア cargo clean pnpm clean # すべてを再ビルド pnpm install pnpm build:tauri - AppImageが実行可能でない
# AppImageを実行可能にする chmod +x app/src-tauri/target/release/bundle/appimage/*.AppImage - GLIBCバージョンが見つからない
GLIBCバージョンに関するエラーが表示される場合は、Ubuntu 24.04 LTS以降であることを確認してください:ldd --version
グラフィックスドライバの問題
最適なパフォーマンスを得るには、適切なグラフィックスドライバがインストールされていることを確認してください:
# NVIDIA用
sudo ubuntu-drivers autoinstall
# AMD用
sudo apt install -y mesa-vulkan-drivers
# Intel用
sudo apt install -y intel-media-va-driver
ヘルプを得る
ここでカバーされていない問題が発生した場合:
- Drop Compress Imageリポジトリで既知の問題を確認
- Linux固有のガイダンスについてTauri v2ドキュメントを確認
- 既存のGitHub Issueを検索するか、新しいIssueを作成
次のステップ
Drop Compress Imageのビルドが成功したら:
- テストの実行:
pnpm testを実行してすべてが正しく動作することを確認 - 開発: ホットリロードでの開発には
pnpm dev:tauriを使用 - カスタマイズ: コードベースを探索して変更を加える
- 配布: 配布可能なパッケージを作成するには
pnpm build:tauriを使用
これでLinuxでDrop Compress Imageを開発およびビルドする準備が整いました!