「dpkg-buildpackage -rfakeroot -d -us -uc -S 失敗」とはどういう意味ですか?

「dpkg-buildpackage -rfakeroot -d -us -uc -S 失敗」とはどういう意味ですか?

簡単なDebianパッケージをビルドしようとしていましたが、rootユーザーを使用して次の手順を実行しました。


まず、アップストリーム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は、Debianソフトウェアパッケージまたは「.debs」をビルドするためのツールです。
  2. -rfakerootコマンドの最初のパラメータで、dpkg-buildpackageにroot権限があるかのように機能するようにdpkg-buildpackageに指示します。マニュアルページで、「dpkg-buildpackageがビルドプロセスの一部をrootとして実行する必要がある場合は、実行されるコマンドの前に付けます」(この場合はfakeroot)。 (使用しないでくださいsu)。
  3. この-dフラグは、「ビルドの依存関係と競合を確認しない」を意味します。
  4. -ucそれぞれが-us変更されたファイルやソースコードに署名しないことを意味します。
  5. -Sこれは、ソースコードパッケージを構築することを意味します。 Debian パッケージには、バイナリとソースコードの 2 種類があります。バイナリはソースパッケージから構築されます。
  6. 「失敗」はコマンドが失敗したことを意味しますが、あなたも知っているようです。 :-)

関連情報