패키지를 만들 때 dpkg 소스 문제를 해결하는 방법은 무엇입니까? 만들 때 편의상 .deb 패키지

여기 누군가 데비안 / 우분투 패키지를 만든 경험이 있습니까? Ubuntu 12.10 (Quantal)에서 Ubuntu 12.04로 lammps 패키지 ( http://packages.ubuntu.com/quantal/lammps ) 를 백 포트하려고합니다.

비공식적으로 만 필요합니다. IaaS 플랫폼에 배포 할 사용자 지정 가상 머신 이미지를 만들 때 편의상 .deb 패키지 만 있으면됩니다.

https://wiki.ubuntu.com/PackagingGuide 의 Ubuntu Packaging Guide에 따라 debuild 명령을 사용하여 다시 빌드하려고 할 때를 제외하고는 성공적으로 빌드 할 수 있습니다. 보통이 오류가 발생합니다.

 dpkg-source: error: aborting due to unexpected upstream changes, see
 /tmp/lammps_0~20120615.gite442279-1.diff.aie32n dpkg-source: info: you
 can integrate the local changes with dpkg-source --commit
 dpkg-buildpackage: error: dpkg-source --include-binaries -i -b
 lammps-0~20120615.gite442279 gave error exit status 2

src 디렉토리에서 ‘make clean-all’을 실행해도 여전히 문제가 해결되지 않습니다. 빌드 프로세스 중에 생성 된 모든 파일을 완전히 정리하거나 소스 파일의 차이점을 무시하도록 빌드 해제를 요청하는 방법이 있습니까?



답변

즉, debian/patches/디렉토리 의 패치에 속하지 않거나 series파일이있는 경우 압축을 푼 업스트림 소스에 변경 사항을 적용했음을 의미합니다 . 퀼트가 패치를 적용한 상태에 약간의 불일치가 있습니다.

/ tmp에서 언급 된 파일을 보면 문제의 변경 사항이 표시됩니다.


답변

바이너리를 빌드하여 데비안 관료주의를 피하십시오 : dpkg-buildpackage -b


답변

퀼트를 사용하지 않으려면 debian / source / format의 형식을 3.0 (퀼트)에서 3.0 (네이티브)으로 변경하십시오. 이것은 어쨌든 나를 위해 문제를 해결했습니다.


답변

@ 토마스 밴더 스티 첼

생성 된 임시 파일을 패치로 사용하는 해결 방법을 생각해 냈습니다.
https://www.theo-andreou.org/?p=1112#toc-apply-patches-for-policy-compliance


답변

퀼트가 작업 복사본에 패치를 적용했다고 잘못 생각했을 때이 문제가 발생했습니다 (.pc 폴더에서 현재 상태를 찾을 수 있음). 이 경우 수정 사항은 퀼트가 모든 패치를 튀어 나오도록하는 것이 었습니다 quilt pop -a -f.


답변

데비안 “서류”를 모두 수행했지만 이전 시도에서 남아있는 유물이있는 경우 이런 일이 발생할 수 있습니다. 특히, 자동 생성 된 “config.sub”, “config.guess”및 “Makefile”변경.

이것을 debian / source / options에 넣을 수 있습니다.

# Don't store changes on autogenerated files
extend-diff-ignore = "(^|/)(config\.sub|config\.guess|Makefile)$"

참조 : https://raphaelhertzog.com/2011/01/28/3-ways-to-not-clutter-your-debian-source-package-with-autogenerated-files/