수정 된 패키지를 구축하려고 할 때“dpkg-source : 소스에 대한 표현할 수없는 변경 사항”


8

다음을 사용하여 소스를 패키지로 다운로드했습니다.

$ apt-get source gkrellweather

또한 컴파일 종속성이 있는지 확인했습니다.

$ sudo apt-get build-dep gkrellweather

그리고 나는 그것이 잘 구축 될 수 있는지 테스트했습니다.

$ cd gkrellweather-2.0.8
$ debuild

.deb위의 폴더에 패키지를 빌드 했으며 다음을 사용하여 설치할 수 있습니다.

$ sudo dpkg -i ../gkrellweather*.deb

모든 것이 제자리에 있습니다. 시작하자!

Vim에서 소스 코드를 열고 원하는 부분을 변경했습니다. 그런 다음 다시 작성하려고했습니다.

$ debuild

그러나 다음과 같은 오류가 발생했습니다.

...
dh_clean: Compatibility levels before 5 are deprecated (level 4 in use)
 dpkg-source -b gkrellweather-2.0.8
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format `1.0'
dpkg-source: info: building gkrellweather using existing gkrellweather_2.0.8.orig.tar.gz
dpkg-source: info: building gkrellweather in gkrellweather_2.0.8-2.diff.gz
dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed
dpkg-source: warning: the diff modifies the following upstream files: 
 GrabWeather
 Makefile
 gkrellweather.c
dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
dpkg-source: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b gkrellweather-2.0.8 gave error exit status 1
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed

왜?

답변:


5

joeytwiddle의 답변 덕분 에이 문제에 대한 해결책을 시작할 수있는 좋은 장소가되었습니다.

데비안 패키지를 만들려고 시도한 Python 프로젝트에서 다음을 사용하고 있습니다.

  • debuild를 실행하기 전에 데비안 패키지를 준비하는 pybuild
  • 버전 관리를위한 자식
  • 파이썬 개발을위한 PyCharm IDE

git은 .git디렉토리를 생성하고 pybuild는 .pybuild디렉토리를 생성하며 PyCharm은 .idea프로젝트의 루트에 모두 디렉토리를 생성합니다 .

joeytwiddle은 debuild가 특정 파일 (그의 경우 swp 파일)을 좋아하지 않는다고 언급했기 때문에 숨겨진 디렉토리에 적합하다고 생각했습니다. git의 경우 할 수 있음을 알았습니다 debuild -i.pybuild 및 idea 디렉토리의 버전 제어 디렉토리는 무시하지만 아직 다른 옵션을 찾지 못했습니다. 그래서 내 솔루션, 나는 빈 디렉토리에 내 프로젝트 복사, 삭제 .git, .idea.pybuild디렉토리 및 성공!


3
-i를 통해 전달됩니다 debuilddpkg-buildpackage다음에 dpkg-source그 사람 페이지 A 정규 표현식 제공 할 수 있다고 말한다. 테스트하지 않으면 도움 -i'(^|/)\.(git|idea|pybuild)($|/)'이 될 것 같습니다 .
joeytwiddle

3

이것은 전에 한 번 이상 저를 트립했습니다. 소스를 변경 한 후 빌드 오류가 발생하는 이유는 소스를 변경 한 후 해당 소스에 대해 패키지 관리자 서명 (사인 오프)이 더 이상 유효하지 않기 때문이라고 생각했습니다.

그러나 실제로이 경우 대답은 간단했습니다.

dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed

문제는 Vim이 swafile을 만들었 기 때문에 마음debuild들지 않았다는 것입니다!

해결책은 간단했습니다. 스왑 파일을 제거하면 빌드가 가능합니다.

$ rm ./.gkrellweather.c.swp
$ debuild
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.