내가 빌드한 .deb 패키지에 새 버전 번호를 어떻게 설정하나요?

내가 빌드한 .deb 패키지에 새 버전 번호를 어떻게 설정하나요?

방금 간단한 소스 코드 수정을 완료하고 Raspberry Pi OS(불스아이 머신)에서 다시 빌드했습니다. 이것은 나에게 새로운 것이므로 모호함을 피하기 위해 내가 따랐던 단계를 나열하겠습니다.

$ dhcpcd --version
dhcpcd 8.1.2                            # "before" version
$ sudo apt install devscripts           # build tools for using `debuild`
$ apt-get source dhcpcd5                # creates source tree ~/dhcpcd5-8.1.2; Debian git repo is far off!
$ cd dhcpcd5-8.1.2                      # cd to source dir
$ nano src/dhcp.c                       # make required changes to the source (one line)
~/dhcpcd5-8.1.2 $ debuild -b -uc -us    # successful build
$ cd ..
$ sudo dpkg -i dhcpcd5_8.1.2-1+rpt5_armhf.deb # install .deb file created by debuild
$ dhcpcd --version
dhcpcd 8.1.2                            # "after" version
$ 

모든 것이 괜찮지만 "이전" 및 "이후" 버전 번호가 정확히 동일하므로 내 버전 번호가 있는지 쉽게 알 수 없습니다.수정됨코드가 실행되거나교정되지 않은암호. 설치하겠습니다 수정됨.deb 파일은 여러 호스트로 전송되고 다른 호스트 등으로부터 요청을 받을 수도 있으므로 생각했습니다.특정한 방법으로쉽게 구별하기 위해수정됨~에서교정되지 않은암호.

을 사용하면 dhcpcd --version이를 수행하는 쉬운 방법인 것 같습니다. 데비안에는 버전 번호에 대한 규칙이 있다는 것을 읽었지만 "세계"에 공개하지 않을 것이기 때문에 형식적일 필요는 없다고 생각합니다. 또한 - 저는 데비안 저장소에 풀 요청/병합 요청을 제출했고, 이 문제에 대해 RPi 조직에 조언을 제공했습니다. 나는 어느 쪽으로부터도 피드백을 받지 못했지만 이 버그는 나에게 큰 짜증을 냈습니다. 나는 dhcpcd"올바른" 버전 번호를 가진 새 버전을 기다리고 싶지 않습니다 .

원인이 되려면 어떻게 해야 합니까?수정됨dhcpcd보고된 버전 dhcpcd 8.1.2.1- 또는 그와 유사한 것?

명확히 하기 위해 편집:

기반으로이 답변, 내가 편집한 것입니다 dhcpcd5-8.1.2/debian/changelog. 이렇게 변경한 후 유틸리티는 apt다음 버전을 일관되게 보고합니다.dhcpcd8.1.3

$ apt-cache policy dhcpcd5
dhcpcd5:
  Installed: 1:8.1.3-1+rpt1
  Candidate: 1:8.1.3-1+rpt1
  Version table:
 *** 1:8.1.3-1+rpt1 100
        100 /var/lib/dpkg/status
     1:8.1.2-1+rpt1 500
        500 http://archive.raspberrypi.org/debian buster/main armhf Packages
     7.1.0-2 500
        500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
$ #
$ dpkg -s dhcpcd5 | grep Version
Version: 1:8.1.3-1+rpt1 
$

아직: dhcpcd --version아직 보고 중입니다 8.1.2. dhcpcd별칭은 dhcpcd5에 있습니다 /etc/alternatives. 그러니까 dhcpcd --version실제로 dhcpcd5 --version는 그렇죠나타나다dhcpcd5실행 파일은 유틸리티 --version와 다른 소스 에서 나옵니다 apt. ?

편집 2:

결과 보고서의 버전 번호 는 다음과 같이 dhcpcd --version정의됩니다 defs.h.

#define PACKAGE                 "dhcpcd"
#define VERSION                 "8.1.2"

생각하다 dhcpcd약간특이치. RPi 팀은 버전 8.1.2 이후 여러 업스트림 버전이 있음에도 불구하고 출시 당시(몇 년 전) 업스트림 버전 9를 포기하고 버전 8.1.2를 고수하기로 결정한 것으로 보입니다. 더 혼란스러운 점은 파일이 Git 저장소 .dsc로 나열되어 있지만 실제로는 버전 7에서 멈춰 있다는 것입니다. Vcs-Browser: https://salsa.debian.org/smlx-guest/dhcpcd5이것은 나에게 별 의미가 없습니다. 그것이 제가 패키지 관리자가 아닌 이유 중 하나라고 생각합니다. :)

답변1

상단에 관련 줄을 추가할 수 있습니다 debian/changelog(찾기여기파일 내용에 대한 세부 정보).

현재 상단 섹션을 복사하고 버전 번호를 변경할 수 있습니다(유용한 로그 주석을 작성하는 것이 좋습니다).

dch또는 다음 도구(에서 )를 사용할 수 있습니다 devtools.

dch --local your_package_name

설치가 완료되면 다음과 같은 방법을 사용하여 설치된 패키지 버전을 확인할 수 있습니다.대안)

dpkg -l dhcpcd5

업스트림 버전 식별자는 항상 공식적으로 존재하지 않기 때문에 자동으로 가져올 수 없습니다(예:python3-lzss) 그렇게 하면 한도 및 주문과 호환되지 않을 수 있습니다.패키지 시스템 버전. 예를 들어 epoch업스트림 버전에서 Debian 버전으로 마이그레이션해야 하는 경우가 있습니다.

관련 정보