deb 版本是“git tag+git commit hash”= apt 从我的 apt 存储库下载了错误的版本

deb 版本是“git tag+git commit hash”= apt 从我的 apt 存储库下载了错误的版本

我制造了一个脚本编译一个程序(盒子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 存储库的当前头。

相关内容