我正在尝试安装hhvm-git
从 AUR 打包并收到错误。子模块之一存在错误。这个错误已经被修复,我想指定修订版包含子模块的修复。我怎样才能做到这一点?
在 PKGBUILD 中,我尝试按照中的建议指定修订版拱门维基(数组中的行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
答案1
我以错误的格式指定了修订版。在我的例子中,正确的格式是:
"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 源下载到的备用目录名称。 - 网址
VCS 存储库的 URL。这必须在 URL 协议中包含 VCS,以便 makepkg 将其识别为 VCS 源。如果协议不包含 VCS 名称,可以通过在 URL 前添加 vcs+ 前缀来添加。例如,通过 HTTPS 使用 Git 存储库将具有以下形式的源 URL:git+https://...。 - 分段
(可选)允许指定 makepkg 的修订号或分支以从 VCS 检出。例如,要签出给定的修订版,源代码行的格式应为 source=(url#revision=123)。可用的片段取决于所使用的 VCS:- 布兹尔:修订版(有关详细信息,请参阅“bzr help revisionspec”)
- git:分支、提交、标签
- 汞:分支、修订、标签
- SVN:修订
答案2
您可以编辑构建文件并指定fragment
选项,例如:
pkgdesc='A YANG data modelling language parser and toolkit written (and providing API) in C'
url="https://github.com/CESNET/${pkgname}"
fragment=c035fe6
从man PKGBUILD
片段(可选) 允许指定 makepkg 的修订号或分支以从 VCS 检出。片段具有 type=value 的形式,例如,要签出给定修订版,源行将为 source=(url#revision=123)。可用类型取决于所使用的 VCS:
bzr:修订版(有关详细信息,请参阅“bzr help revisionspec”)
化石:分支、提交、标签
git:分支、提交、标签
hg:分支、修订、标签
svn:修订版