지정된 버전을 통해서만 데비안 패키지를 설치하는 방법

지정된 버전을 통해서만 데비안 패키지를 설치하는 방법

내 CI/CD가 각 커밋에 대해 내 패키지의 .deb(예: 커밋 해시가 포함된 버전(예: my-package-662b98b))를 자동으로 빌드하여 버전을 지정하여 특정 버전을 설치할 수 있도록 하고 싶습니다.

그런데 일반버전과 어떻게 구분하는지 모르겠네요. 예를 들어 버전 3.1은 버전 2abdc4a를 덮어쓰거나 반대로 커밋 924af32는 3.1을 덮어씁니다.

예를 들어, 패키지 버전이 실험적이므로 일반 버전 대신 설치하면 안 된다는 것을 나타내는 필드가 제어 또는 변경 로그 파일에 있습니까?

답변1

여기에는 두 가지 측면이 있습니다.

첫 번째는 버전 번호입니다. 버전을 순서대로 유지하려면 버전과 해시를 포함해야 합니다. 버전이 올바르게 정렬되었는지 확인하기 위해 일반적으로 해시 앞에 빌드 날짜를 추가하고, 하루에 여러 빌드가 있을 수 있는 경우 그 사이에 스냅샷 번호를 추가하여 수행됩니다(참조예를 들어 Debian Go 패키징 정책). 귀하의 경우에는 다음과 같은 버전이 있습니다.

  • 최신 버전은 3.1입니다.
  • 3.1+git20220725.1.2abdc4a는 해시 2abdc4a에 해당하는 빌드용입니다(이것이 오늘의 첫 번째 해시라고 가정).
  • 해시 924af32에 해당하는 빌드의 경우 3.1+git20220725.2.924af32(오늘의 두 번째 해시라고 가정)

두 번째는 릴리스 패키지와 스냅샷 패키지를 분리하는 것입니다. 이 문제를 해결하려면 저장소를 분할해야 합니다. 또는 릴리스 패키지용 "제품군" 하나와 스냅샷/실험 패키지용 "제품군"을 각각 호스팅해야 합니다. 바라보다데비안 실험 Release파일후자의 예를 들어, "NotAutomatic: yes"를 설정하면 패키지가 자동으로 설치되거나 업그레이드로 사용될 수 없습니다.

관련 정보