Arch-Linux
在 PKGBUILD 中指定子模組版本
我正在嘗試
hhvm-git
從 AUR 安裝軟體包並收到錯誤消息。其中一個子模組存在錯誤。此錯誤已修復,我想指定修訂包含子模組的修復。我怎樣才能做到這一點?在 PKGBUILD 中,我嘗試按照Arch Wiki中的建議指定修訂版(
source
數組中的行):"git+https://github.com/facebook/proxygen#7e37f926d922b55c85537057b57188dea9694c32"
結果:
-> Creating working copy of proxygen git repo... remote: Counting objects: 6, done. remote: Compressing objects: 100% (6/6), done. remote: Total 6 (delta 4), reused 0 (delta 0) Unpacking objects: 100% (6/6), done. From /tmp/yaourt-tmp-german/aur-hhvm-git/proxygen 7e2a49c..3395064 master -> origin/master ==> ERROR: Unrecognized reference: 7e37f926d922b55c85537057b57188dea9694c32
我以錯誤的格式指定了修訂。在我的情況下正確的格式是:
"git+https://github.com/facebook/proxygen#commit=7e37f926d922b55c85537057b57188dea9694c32"
來自
man PKGBUILD
:使用 VCS 源
通過以 source=(‘directory::url#fragment’) 形式指定源,可以使用來自版本控制系統 (VCS) 的源建構包的開發版本。目前 makepkg 支持 Bazaar、Git、Subversion 和 Mercurial 版本控制系統。對於其他版本控制系統,上游儲存庫的手動複製必須在 prepare() 函式中完成。
源 URL 分為三個部分:
- 目錄
(可選)為 makepkg 指定一個備用目錄名稱,以將 VCS 源下載到其中。
- url
VCS 儲存庫的 URL。這必須在 URL 協議中包含 VCS,以便 makepkg 將其辨識為 VCS 源。如果協議不包含 VCS 名稱,可以通過在 URL 前加上 vcs+ 來添加它。例如,通過 HTTPS 使用 Git 儲存庫將具有以下形式的源 URL:git+https://….
- 片段
(可選)允許為 makepkg 指定修訂號或分支以從 VCS 中檢出。例如,要簽出給定的修訂版本,原始碼行的格式為 source=(url#revision=123)。可用的片段取決於所使用的 VCS:
- **bzr:**修訂版(有關詳細資訊,請參閱“bzr help revisionspec”)
- **git:**分支、送出、標記
- **hg:**分支,修訂,標籤
- **svn:**修訂