![내가 빌드한 .deb 패키지에 새 버전 번호를 어떻게 설정하나요?](https://linux55.com/image/204626/%EB%82%B4%EA%B0%80%20%EB%B9%8C%EB%93%9C%ED%95%9C%20.deb%20%ED%8C%A8%ED%82%A4%EC%A7%80%EC%97%90%20%EC%83%88%20%EB%B2%84%EC%A0%84%20%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%84%A4%EC%A0%95%ED%95%98%EB%82%98%EC%9A%94%3F.png)
방금 간단한 소스 코드 수정을 완료하고 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
다음 버전을 일관되게 보고합니다.dhcpcd
8.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 버전으로 마이그레이션해야 하는 경우가 있습니다.