我制造了一个脚本编译一个程序(盒子86),每周打包成debian包,上传到我的apt 仓库(托管在 github 上)。
对于每个包的版本,我使用 git tag(0.2.1
例如)和 git commit hash(638b341
例如),并将它们像这样放置:tag+sha1(0.2.1+638b341
例如)。请注意,用于打包的 checkinstall-1
在末尾添加了 ,因此在我的示例中,版本将为0.2.1+638b341-1
.
将存储库添加到我的 apt 源后,apt 得到错误的版本。我尝试了一些修复,包括添加“纪元”、增加-1
、在之前添加一个数字并在每个版本中增加它 ( 1-version
)。但它们都不起作用(或不实用)。
我很确定我必须在版本中添加一些东西,但我不知道是什么。
任何帮助表示赞赏。
答案1
在其他条件相同的情况下,更apt
喜欢更高版本。由于哈希值不会随着时间的推移而增加,因此在版本中使用它们可能会导致您所看到的问题。
有两种常见的解决方法:在哈希之前添加一个单调递增的数字, 或者再次在哈希值之前添加日期。
采用后一种方法,对于今天完成的构建,您将拥有 0.2.1+20210320.thehash-1,根据需要替换“thehash”。更好的是,您可以使用
git log --date=format:%Y%m%d --pretty=0.0~git%cd.%h
生成版本号;这得到了支持uscan
并可用于自动更新到 git 存储库的当前头。