"dpkg-buildpackage -rfakeroot -d -us -uc -S 실패"는 무엇을 의미합니까?

"dpkg-buildpackage -rfakeroot -d -us -uc -S 실패"는 무엇을 의미합니까?

저는 간단한 데비안 패키지를 만들려고 했고, 루트 사용자로 다음 단계를 수행했습니다:


먼저 업스트림 tarball을 다운로드한 후 다음을 수행했습니다.

 $ mv hithere-1.0.tar.gz hithere_1.0.orig.tar.gz

그 다음에:

 $ tar xf hithere_1.0.orig.tar.gz

이후:

 $ cd hithere-1.0
 $ dch --create -v 1.0-1 --package hithere 
 $ cd debian/
 $ rm *.ex *.EX

그런 다음 "제어 파일"과 "저작권 파일"을 편집했습니다.

 $ nano control
 $ nano copyright


 $ cd ..
 $ debuild -S

마지막 명령 후에 다음 오류가 생성되었습니다.

root@mehrnaz-MS-A934:/home/fabdollahei/hithere-1.0# debuild -S dpkg-buildpackage -rfakeroot -d -us -uc -S
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: source package hithere
dpkg-buildpackage: source version 1.0-1
dpkg-buildpackage: source distribution unstable
dpkg-buildpackage: source changed by root <[email protected]>
dpkg-source --before-build hithere-1.0
dpkg-source: error: syntax error in hithere-1.0/debian/control at line 15: block lacks the 'Package' field
dpkg-buildpackage: error: dpkg-source --before-build hithere-1.0 gave error exit status 255
dpkg-source: error: syntax error in hithere-1.0/debian/control at line 15: block lacks the 'Package' field
dpkg-buildpackage: error: dpkg-source --before-build hithere-1.0 gave error exit status 255
debuild: fatal error at line 1364:
dpkg-buildpackage -rfakeroot -d -us -uc -S failed

그 치명적인 오류를 어떻게 제거합니까?

답변1

메시지에는 dpkg-buildpackage명령이 실패했다는 메시지만 표시됩니다. 메시지를 읽으면 문제가 있는 부분을 즉시 알 수 있습니다.

dpkg-source: error: syntax error in hithere-1.0/debian/control at line 15:
block lacks the 'Package' field
dpkg-buildpackage: error: dpkg-source --before-build hithere-1.0 gave error exit status 255

해당 문제를 해결하면(나중에 나타날 수 있는 다른 문제도 있을 수 있음) 제대로 작동할 것입니다.

답변2

dpkg-buildpackage -rfakeroot -d -uc -us -S failed수단;

  1. dpkg-buildpackage실행된 명령의 이름입니다. dpkg-buildpackage는 데비안 패키지 또는 '.debs'를 빌드하기 위한 도구입니다.
  2. -rfakeroot명령의 첫 번째 인수이며 dpkg-buildpackage에 루트 권한이 있는 것처럼 작동하도록 dpkg-buildpackage에 지시합니다. 매뉴얼 페이지에서; "dpkg-buildpackage가 빌드 프로세스의 일부를 루트로 실행해야 하는 경우 실행하는 명령 앞에 "(이 경우에는 fakeroot)를 붙입니다. (사용하지 마십시오 su).
  3. 플래그 -d는 "빌드 종속성 및 충돌을 확인하지 않음"을 의미합니다.
  4. -uc-us변경 사항 파일이나 소스 코드에 각각 서명하지 않는다는 뜻입니다 .
  5. -S소스 패키지를 빌드한다는 의미입니다. 데비안 패키지는 두 가지 유형으로 제공됩니다. 바이너리와 소스. 바이너리는 소스 패키지에서 빌드됩니다.
  6. "실패"는 명령이 실패했음을 의미하지만 이미 알고 계셨던 것 같습니다. :-)

관련 정보