跳到內容
Tauri

RPM

RPM 套件封裝

本指南涵蓋如何發佈和管理 RPM 套件,包括檢索套件資訊、設定腳本、設定依賴項和簽署套件。

設定 RPM 套件

Tauri 允許您通過新增腳本、設定依賴項、新增授權條款、包含自訂檔案等方式來設定 RPM 套件。有關可設定選項的詳細資訊,請參閱:RpmConfig

將 post、pre-install/remove 腳本新增至套件

RPM 套件管理器允許您在套件安裝或移除之前或之後運行腳本。例如,您可以使用這些腳本在套件安裝後啟動服務。

以下是如何新增這些腳本的範例

  1. 在您專案的 src-tauri 目錄中建立一個名為 scripts 的資料夾。
終端機視窗
mkdir src-tauri/scripts
  1. 在資料夾中建立腳本檔案。
終端機視窗
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
  1. 將一些內容新增到腳本
preinstall.sh
echo "-------------"
echo "This is pre"
echo "Install Value: $1"
echo "Upgrade Value: $1"
echo "Uninstall Value: $1"
echo "-------------"
postinstall.sh
echo "-------------"
echo "This is post"
echo "Install Value: $1"
echo "Upgrade Value: $1"
echo "Uninstall Value: $1"
echo "-------------"
preremove.sh
echo "-------------"
echo "This is preun"
echo "Install Value: $1"
echo "Upgrade Value: $1"
echo "Uninstall Value: $1"
echo "-------------"
postremove.sh
echo "-------------"
echo "This is postun"
echo "Install Value: $1"
echo "Upgrade Value: $1"
echo "Uninstall Value: $1"
echo "-------------"
  1. 將腳本新增到 tauri.conf.json 檔案
tauri.conf.json
{
"bundle": {
"linux": {
"rpm": {
"epoch": 0,
"files": {},
"release": "1",
// add the script here
"preInstallScript": "/path/to/your/project/src-tauri/scripts/prescript.sh",
"postInstallScript": "/path/to/your/project/src-tauri/scripts/postscript.sh",
"preRemoveScript": "/path/to/your/project/src-tauri/scripts/prescript.sh",
"postRemoveScript": "/path/to/your/project/src-tauri/scripts/postscript.sh"
}
}
}
}

設定 Conflict、Provides、Depends、Files、Obsoletes、DesktopTemplate 和 Epoch

  • conflict:防止在套件與另一個套件衝突時安裝套件。 例如,如果您更新應用程式依賴的 RPM 套件,並且新版本與您的應用程式不兼容。

  • provides:列出您的應用程式提供的 RPM 依賴項。

  • depends:列出您的應用程式運行所需的 RPM 依賴項。

  • files:指定要包含在套件中的檔案。

  • obsoletes:列出您的應用程式取代的 RPM 依賴項。

  • desktopTemplate:將自訂桌面檔案新增到套件。

  • epoch:根據版本號定義加權依賴項。

要使用這些選項,請將以下內容新增到您的 tauri.conf.json

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.tomlsrc-tauri/tauri.conf.json 檔案中

src-tauri/cargo.toml
[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

src-tauri/tauri.conf.json
{
"bundle": {
"licenseFile": "../LICENSE", // put the path to the license file here
"license": "MIT" // add the license here
}
}

建置 RPM 套件

要建置 RPM 套件,您可以使用以下命令

npm run tauri build

此命令將在 src-tauri/target/release/bundle/rpm 目錄中建置 RPM 套件。

簽署 RPM 套件

Tauri 允許您在使用系統中的金鑰進行建置過程中簽署套件。 為此,您需要生成 GPG 金鑰。

生成 GPG 金鑰

要生成 GPG 金鑰,您可以使用以下命令

終端機視窗
gpg --gen-key

按照說明生成金鑰。

生成金鑰後,您需要將其新增到您的環境變數中。 您可以通過將以下內容新增到您的 .bashrc 或 .zshrc 檔案中,或者只是在終端機中導出它來做到這一點

終端機視窗
export TAURI_SIGNING_RPM_KEY=$(cat /home/johndoe/my_super_private.key)

如果您的金鑰有密碼,您可以將其新增到環境變數中

終端機視窗
export TAURI_SIGNING_RPM_KEY_PASSPHRASE=password

現在您可以使用以下命令建置套件

npm run tauri build

驗證簽章

在驗證簽章之前,您需要建立公鑰並將其導入到 RPM 資料庫

終端機視窗
gpg --export -a 'Tauri-App' > RPM-GPG-KEY-Tauri-App
終端機視窗
sudo rpm --import RPM-GPG-KEY-Tauri-App

現在金鑰已導入,我們必須編輯 ~/.rpmmacros 檔案以使用金鑰。

~/.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 套件。

取得關於套件的資訊

要獲取關於您的套件的資訊,例如版本、發行版本和架構,請使用以下命令

終端機視窗
rpm -qip package_name.rpm

查詢關於套件的特定資訊

例如,如果您想獲取套件的名稱、版本、發行版本、架構和大小,請使用以下命令

終端機視窗
rpm -qp --queryformat '[%{NAME} %{VERSION} %{RELEASE} %{ARCH} %{SIZE}\n]' package_name.rpm

檢查套件的內容

要檢查套件的內容,請使用以下命令

終端機視窗
rpm -qlp package_name.rpm

此命令將列出套件中包含的所有檔案。

除錯腳本

要除錯 post/pre-install/remove 腳本,請使用以下命令

終端機視窗
rpm -qp --scripts package_name.rpm

此命令將印出腳本的內容。

檢查依賴項

要檢查套件的依賴項,請使用以下命令

終端機視窗
rpm -qp --requires package_name.rpm

列出依賴於特定套件的套件

要列出依賴於特定套件的套件,請使用以下命令

終端機視窗
rpm -q --whatrequires package_name.rpm

除錯安裝問題

如果您在安裝 RPM 套件期間遇到問題,您可以使用 -vv(非常詳細)選項來獲取詳細輸出

終端機視窗
rpm -ivvh package_name.rpm

或者對於已安裝的套件

終端機視窗
rpm -Uvvh package_name.rpm

© 2025 Tauri 貢獻者。CC-BY / MIT