Debian
deb 版本是“git tag+git commit hash”= apt 從我的 apt repo 下載錯誤的版本
我製作了一個腳本來編譯一個程序(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 儲存庫的目前頭部。