.SRCINFO - Arch Linux 中文维基

跳至內容

# .SRCINFO

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 .SRCINFO，最近一次同步於 2025-10-24，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- Arch 構建系統
- Arch 打包準則
- 創建軟體包
- pacman
- pacman/提示和技巧

`.SRCINFO` 文件（舊稱 `.AURINFO`）用一個簡單直接的格式記錄軟體包的元數據，這樣像 devtools包 的工具和 AUR 網站後台或 AUR 助手可以不用解析 PKGBUILD 就獲得需要的信息。直接解析 shell 腳本的潛在問題可參考 FS#25210，FS#15043 和 FS#16394。

警告：對 `PKGBUILD` 元數據的修改例如 pkgver() 更新，不會自動同步到 `.SRCINFO`. 如果修改了 `PKGBUILD` 但是沒更新 `.SRCINFO` 會導致 AUR 使用錯誤的數據。

## 生成

可以通過 makepkg 自動生成 `.SRCINFO` 文件：

    $ makepkg --printsrcinfo > .SRCINFO

## 語法

`.SRCINFO` 按行解析，每一行由像 `key = value` 一樣的鍵值對組成。

每一個鍵都是一個欄位，鍵值與 PKGBUILD 變量對應，具體請參考 PKGBUILD(5) § OPTIONS AND DIRECTIVES。鍵和數值都不應該加引號。等號兩邊一定要有一個空格（即使值為空）而且值之間不能包含逗號。有些值在 `PKGBUILD` 中是數組，需要變為同樣的值多次指定，例如：

    PKGBUILD

    arch=(i686 x86_64)

    .SRCINFO

    arch = i686
    arch = x86_64

文件以 pkgbase 聲明開頭，此段落包含適用於整個軟體包的數據。標準的 `PKGBUILD` 描述了一個單獨的軟體包，那麼這就是唯一的主段落，後面跟著包含軟體包的名稱的 pkgname 聲明，與前面的 `pkgbase` 對應：

    pkgbase = foo
    	pkgdesc = An example package.
    	...
    	md5sums = SKIP

    pkgname = foo

如果 `PKGBUILD` 包含多個軟體包，那麼每個段落都以 `pkgname` 開頭，然後記錄針對那個軟體包的數據。

這篇文章的某些內容需要擴充。

原因：The above will suffice for some, below is a verbose list of parameters; split these up to improve readability. Also, find ways to reduce redundancy between this and PKGBUILD. (在 Talk:.SRCINFO 中討論)

## 要求

下面欄位只能在 `.SRCINFO` 文件的 `pkgbase` 段落出現一次：

- `pkgver`，`pkgrel`，`epoch`

下面欄位可以在任何欄位出現，每段落最多一次：

- `pkgdesc`，`url`，`install`，`changelog`

下面欄位可以在一個段落裡多次出現：

- `arch`
- `groups`
- `license`
- `noextract`
- `options`
- `backup`
- `validpgpkeys`（只能在 pkgbase 出現）

下列的欄位可以重複出現，以多個體系結構為例：

    source_x86_64 = https://foo.bar/file.tar.gz
    source_i686 = https://foo.bar/file_i686_patch.tar.gz

- `source`
- `depends`，`checkdepends`，`makedepends`，`optdepends`
- `provides`，`conflicts`，`replaces`
- `md5sums`，`sha1sums`，`sha224sums`，`sha256sums`，`sha384sums`，`sha512sums`

其它欄位名稱、換行和以 `#` 開頭的行會被忽略。

分類：​

- 包開發

.SRCINFO
新增話題