RPM
RPM Red Hat Package Manager: 米 Red Hat(レッドハット)社が開発した、ソフトウェアのパッケージ管理システムの名称。
この章では、パッケージ情報の取得、スクリプトの設定、依存関係の設定、パッケージの署名など、RPM パッケージの配布と管理の方法について説明します。
Tauri では、スクリプトの追加、依存関係の設定、ライセンスの追加、カスタム・ファイルの追加などにより、RPM パッケージを構成できます。 設定可能なオプションの詳細については、RpmConfig を参照してください。
「RPM パッケージ・マネージャー」を使用すると、パッケージのインストールまたは削除の前後にスクリプトを実行できます。例えば、これらのスクリプトを使用して、パッケージのインストール後にサービスを開始できます。
以下にスクリプトを追加する方法の事例を示します:
- プロジェクトの
src-tauri
ディレクトリにscripts
という名前のフォルダーを作成します。
mkdir src-tauri/scripts
- フォルダー内にスクリプト・ファイルを作成します。
touch src-tauri/scripts/postinstall.sh \touch src-tauri/scripts/preinstall.sh \touch src-tauri/scripts/preremove.sh \touch src-tauri/scripts/postremove.sh
ここで /src-tauri/scripts
の中を見ると次のようになります:
ls src-tauri/scripts/postinstall.sh postremove.sh preinstall.sh preremove.sh
- 各スクリプトにコンテンツを追加します
echo "-------------"echo "This is pre"echo "Install Value: $1"echo "Upgrade Value: $1"echo "Uninstall Value: $1"echo "-------------"
echo "-------------"echo "This is post"echo "Install Value: $1"echo "Upgrade Value: $1"echo "Uninstall Value: $1"echo "-------------"
echo "-------------"echo "This is preun"echo "Install Value: $1"echo "Upgrade Value: $1"echo "Uninstall Value: $1"echo "-------------"
echo "-------------"echo "This is postun"echo "Install Value: $1"echo "Upgrade Value: $1"echo "Uninstall Value: $1"echo "-------------"
tauri.conf.json
ファイルに各スクリプトを追加します
{ "bundle": { "linux": { "rpm": { "epoch": 0, "files": {}, "release": "1", // ここにスクリプトを追加します "preInstallScript": "/path/to/your/project/src-tauri/scripts/preinstall.sh", "postInstallScript": "/path/to/your/project/src-tauri/scripts/postinstall.sh", "preRemoveScript": "/path/to/your/project/src-tauri/scripts/preremove.sh", "postRemoveScript": "/path/to/your/project/src-tauri/scripts/postremove.sh" } } }}
Conflict、Provides、Depends、Files、Obsoletes、DesktopTemplate、Epoch の設定
Section titled “Conflict、Provides、Depends、Files、Obsoletes、DesktopTemplate、Epoch の設定”-
conflict(競合): 他のパッケージと競合する場合、そのパッケージのインストールを防止します。たとえば、あなたのアプリが依存している RPM パッケージを更新したときに、その新しいバージョンにアプリとの互換性がない場合などです。
-
provides(提示): あなたのアプリケーションが提示する RPM 依存関係を一覧表示します。
-
depends(依存): アプリケーションの実行に必要な RPM 依存関係を一覧表示します。
-
files(ファイル): パッケージに含めるファイルを指定します。
-
obsoletes(廃止): アプリケーションが廃止する RPM 依存関係を一覧表示します
-
desktopTemplate(デスクトップ・テンプレート): パッケージにカスタム・デスクトップ・ファイルを追加します。
-
epoch(期別): バージョン番号に基づいて重み付けされた依存関係を定義します。
上記のオプションを使用するには、tauri.conf.json
に以下を追加します:
{ "bundle": { "linux": { "rpm": { "postRemoveScript": "/path/to/your/project/src-tauri/scripts/postscript.sh", "conflicts": ["oldLib.rpm"], "depends": ["newLib.rpm"], "obsoletes": ["veryoldLib.rpm"], "provides": ["coolLib.rpm"], "desktopTemplate": "/path/to/your/project/src-tauri/desktop-template.desktop" } } }}
パッケージにライセンスを追加するには、以下の内容を src-tauri/cargo.toml
または src-tauri/tauri.conf.json
ファイルに追加します:
[package]name = "tauri-app"version = "0.0.0"description = "A Tauri App"authors = ["you"]edition = "2021"license = "MIT" # add the license here# ... rest of the file
src-tauri/tauri.conf.json
の場合は、
{ "bundle": { "licenseFile": "../LICENSE", // ここにライセンス・ファイルへのパスを入力 "license": "MIT" // ここにライセンスを追加 }}
RPM パッケージをビルドするには、次のコマンドを使用します:
npm run tauri build
yarn tauri build
pnpm tauri build
deno task tauri build
bun tauri build
cargo tauri build
このコマンドは、src-tauri/target/release/bundle/rpm
ディレクトリに RPM パッケージをビルドします。
Tauri では、ビルド・プロセス中に、自分のシステムにあるキーを使用してパッケージに署名できます。 これを行なうには、「GPG キー」を生成する必要があります。
GPG キーを生成するには、次のコマンドを使用します:
gpg --gen-key
指示に従ってキーを生成します。
キーが生成されたら、そのキーを環境変数に追加する必要があります。 これには、以下のコードを .bashrc または .zshrc ファイルに追加するか、「ターミナル」でエクスポートします:
export TAURI_SIGNING_RPM_KEY=$(cat /home/johndoe/my_super_private.key)
johndoe 上記パスの「/johndoe/」の部分には、自分の名前(システム上のユーザー名)が入ります。johndoe(John Doe)は、英語での「名無しの権兵衛」と同様の言い方。以下、同様。
キーのパスフレーズがある場合は、それも環境変数に追加できます:
export TAURI_SIGNING_RPM_KEY_PASSPHRASE=password
さあこれで、次のコマンドを使ってパッケージをビルドできます:
npm run tauri build
yarn tauri build
pnpm tauri build
deno task tauri build
bun tauri build
cargo tauri build
署名を検証する前に、公開キーを作成して RPM データベースにインポートする必要があります:
gpg --export -a 'Tauri-App' > RPM-GPG-KEY-Tauri-App
sudo rpm --import RPM-GPG-KEY-Tauri-App
公開キーがインポートされたら、そのキーを利用するために ~/.rpmmacros
ファイルを編集します。
%_signature gpg%_gpg_path /home/johndoe/.gnupg%_gpg_name Tauri-App%_gpgbin /usr/bin/gpg2%__gpg_sign_cmd %{__gpg} \ gpg --force-v3-sigs --digest-algo=sha1 --batch --no-verbose --no-armor \ --passphrase-fd 3 --no-secmem-warning -u "%{_gpg_name}" \ -sbo %{__signature_filename} %{__plaintext_filename}
ようやくこれで、次のコマンドを使用してパッケージを検証できます:
rpm -v --checksig tauri-app-0.0.0-1.x86_64.rpm
この項では、パッケージの内容を確認し、パッケージに関する情報を取得することで、RPM パッケージをデバッグする方法について説明します。
バージョン、リリース、アーキテクチャなどのパッケージに関する情報を取得するには、次のコマンドを使用します:
rpm -qip package_name.rpm
たとえば、パッケージの名前やバージョン、リリース、アーキテクチャ、パッケージ・サイズなどを取得しようとする場合には、次のコマンドを使用します:
rpm -qp --queryformat '[%{NAME} %{VERSION} %{RELEASE} %{ARCH} %{SIZE}\n]' package_name.rpm
パッケージの内容を確認するには、次のコマンドを使用します:
rpm -qlp package_name.rpm
このコマンドは、パッケージに含まれるすべてのファイルを一覧表示します。
「インストール/削除」の前/後のスクリプトをデバッグするには、次のコマンドを使用します:
rpm -qp --scripts package_name.rpm
このコマンドはスクリプトの内容を出力します。
パッケージの依存関係を確認するには、次のコマンドを使用します:
rpm -qp --requires package_name.rpm
特定のパッケージに依存するパッケージを一覧表示するには、次のコマンドを使用します:
rpm -q --whatrequires package_name.rpm
RPM パッケージのインストール中に問題が発生した場合は、-vv
オプション(very verbose「非常に詳細な」)を使用して詳細な出力を利用できます:
rpm -ivvh package_name.rpm
あるいは、すでにインストール済のパッケージでは:
rpm -Uvvh package_name.rpm
を使用します。
【※ この日本語版は、「Mar 29, 2025 英語版」に基づいています】
© 2025 Tauri Contributors. CC-BY / MIT