シンプルな 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
手段;
dpkg-buildpackage
実行されたコマンドの名前です。dpkg-buildpackage は、Debian パッケージまたは '.debs' をビルドするためのツールです。-rfakeroot
はコマンドの最初の引数であり、dpkg-buildpackage に root 権限があるかのように動作するように指示します。マニュアル ページによると、「dpkg-buildpackage がビルド プロセスの一部を root として実行する必要がある場合、実行するコマンドの前に fakeroot を付加します ( は使用しないでくださいsu
)。 」- この
-d
フラグは「ビルドの依存関係と競合をチェックしない」ことを意味します。 -uc
および は、-us
それぞれ変更ファイルまたはソース コードに署名しないことを意味します。-S
ソース パッケージをビルドすることを意味します。Debian パッケージには、バイナリとソースの 2 種類があります。バイナリはソース パッケージからビルドされます。- 「失敗」はコマンドが失敗したことを意味しますが、これはご存知だと思います。 :-)