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

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

간단한 Debian 패키지를 빌드하려고 하는데 루트 사용자를 사용하여 다음 단계를 수행했습니다.


먼저 업스트림 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. "실패"는 명령이 실패했음을 의미하지만 여러분도 알고 계실 것 같습니다. :-)

관련 정보