Debian

deb 版本是“git tag+git commit hash”= apt 從我的 apt repo 下載錯誤的版本

  • March 21, 2021

我製作了一個腳本來編譯一個程序(box86),每週將它打包成一個 debian 包,然後將它上傳到我的apt repo(託管在 github 上)。

對於每個包的版本,我使用 git 標籤(0.2.1例如)和 git commit hash(638b341例如)並將它們放在這樣的位置:tag+sha1(0.2.1+638b341例如)。請注意,用於打包的 checkinstall-1在末尾添加了 a,因此在我的範例中,版本為0.2.1+638b341-1.

將 repo 添加到我的 apt 源後,apt 得到了錯誤的版本。我嘗試了幾種修復方法,包括添加“紀元”、增加-1、在之前添加一個數字並在每個版本中增加它(1-version)。但他們都沒有工作(或不實用)。

我很確定我必須在版本中添加一些東西,但我不知道是什麼。

任何幫助表示讚賞。

在其他條件相同的情況下,apt更喜歡更高版本。因為雜湊不會隨時間增加,所以在版本中使用它們可能會導致您看到的問題。

有兩種常見的解決方法:在 hash 之前添加一個單調遞增的數字,或者在 hash之前再次添加日期

採用後一種方法,對於今天完成的建構,您將擁有 0.2.1+20210320.thehash-1,酌情替換“thehash”。更好的是,您可以使用

git log --date=format:%Y%m%d --pretty=0.0~git%cd.%h

生成版本號;這受支持uscan並可用於自動更新到 git 儲存庫的目前頭部。

引用自:https://unix.stackexchange.com/questions/640237