내가 하나 만들었어스크립트프로그램 컴파일(박스 86), 매주 데비안 패키지로 패키징되어 내 디렉토리에 업로드됩니다.적절한 저장소(github에 호스팅됨)
각 패키지 버전에 대해 git 태그( 0.2.1
예:)와 git 커밋 해시( 638b341
예:)를 사용하고 이를 tag+sha1( 0.2.1+638b341
예:)과 같이 배치합니다. 패키징을 위한 checkinstall이 -1
마지막에 추가되므로 제 예에서는 버전이 0.2.1+638b341-1
.
적절한 소스에 저장소를 추가한 후 apt가 잘못된 버전을 얻습니다. "epoch" 추가, 증가 -1
, 이전에 숫자 추가, 각 버전마다 증가( ) 등 몇 가지 수정 사항을 시도했습니다 1-version
. 그러나 그 중 어느 것도 작동하지 않습니다(또는 실용적이지 않습니다).
버전에 뭔가를 추가해야 한다고 확신하는데 무엇을 추가해야 할지 모르겠습니다.
도움을 주시면 감사하겠습니다.
답변1
다른 모든 조건이 동일하다면 apt
더 높은 버전을 선호합니다. 해시는 시간이 지나도 증가하지 않으므로 릴리스에서 해시를 사용하면 표시되는 문제가 발생할 수 있습니다.
두 가지 일반적인 솔루션이 있습니다.해시 앞에 단조롭게 증가하는 숫자를 추가합니다., 또는다시 해시 값 앞에 날짜를 추가하십시오..
후자의 접근 방식을 취하면 오늘 완료된 빌드의 경우 필요에 따라 "thehash"를 대체하는 0.2.1+20210320.thehash-1이 됩니다. 더 나은 방법은 다음과 같습니다.
git log --date=format:%Y%m%d --pretty=0.0~git%cd.%h
버전 번호 생성이 지원됩니다.uscan
git 저장소의 현재 헤더를 자동으로 업데이트하는 데 사용할 수 있습니다.