특정 Go 프로그램을 빌드하고 패키징하고 싶습니다. Ubuntu 18.04와 Debian 9.5(실제로 PVE 5.2)에서 제공되는 해당 프로그램의 패키지 버전은 업스트림에서 얻은 버전에 비해 상당히 오래되었습니다.
내 빌드에 대한 종속성을 올바르게 가져오는 것은 문제가 아니었고 데비안 패키지를 빌드하는 것도 문제가 아니었습니다(거기서 수행했습니다).
내가 알아야 할 것은 내 패키지에 버전을 할당하는 방법입니다. 이 버전은 다른 사람에게 릴리스되지 않습니다.~해야 한다패키지 관리자가 내 패키지보다 최신 버전을 출시하면 해당 패키지가 설치되고 내 패키지가 교체됩니다(이러한 경우 중 하나가 Ubuntu의 패키지일 수 있음 do-release-upgrade
).
빌드 비교( )를 중단하지 않고 이런 방식으로 패키지에 "태그"를 지정할 수 있는 방법이 있나요 dpkg --compare-versions
?
백포트는 일반적으로 패키지 이름(또는 버전입니까?)에 포함된다는 것을 알고 있지만 bpo
이러한 "태그"의 전체 목록을 찾기가 어렵기 때문에 이를 달성하고 충돌을 피할 수 있는 방법이 이미 있을 것이라고 생각했습니다. 따라서 주요 목표는 얻을 수 있는 최신 버전을 얻으면서 규칙을 고수하는 것입니다.
답변1
새로운 업스트림 버전을 패키징하고 있으므로 다음 형식의 버전을 권장합니다.
1.0-0~c0000022l+1
1.0은 업스트림 버전입니다. 여기서의 아이디어는 다음과 같습니다.
- 0은 공식 Debian 패키지보다 낮은 버전입니다. 예를 들어 Debian보다 최신 업스트림 버전을 제공하는 Ubuntu 패키지에 사용됩니다(
0ubuntu
여기서 볼 수 있음). - ~ 어쨌든 버전이 -0 개정판보다 낮은지 확인합니다(참조데비안 정책더 알아보기);
- c0000022l은 개정판을 자신의 개정판으로 표시하는 데 사용되는 특정 접미사입니다(
bpo
백포트,deb
데비안 안정 업데이트와 유사...). - 향후 업데이트를 위한 포장 공간을 제공해주셔서 +1해 주세요.
이후에 패키징 수정 사항만 포함된 업데이트 패키지를 제공해야 하는 경우 +1을 받게 됩니다. 최신 업스트림 버전을 패키징하는 경우 업스트림 버전을 적절하게 올리고 +1부터 다시 시작할 수 있습니다.
동일한 업스트림 또는 최신 업스트림이 "공식적으로" 패키지되면 로컬 버전에 대한 유효한 업그레이드 후보가 됩니다. Ubuntu 패키지인 경우 1.0-0ubuntu...는 1.0-0~ 다음에 정렬됩니다. Debian 패키지이므로 1.0-1은 1.0-0 다음으로 순위가 매겨집니다.