2

私は、この Ubuntu ガイドに従って、PPA に入れる deb をビルドしようとしている初心者ですが、この概要Debian ポリシー マニュアルを参照するルール ファイルで問題が発生します。多くの場合、rules ファイルを非常に短い形式のままにしておくことができると思いますが、これはうまくいきません。おそらく、アップストリーム パッケージで make を実行できるようになる前に、ちょっとした工夫が必要だからです。

アップストリームを手動でビルドおよびインストールするためのビルド プロセスは次のとおりです。

  1. cd packagedir/src
  2. cp makefile.unix makefile.my
  3. makefile.my で 3 つの sed 行を実行します。
  4. make -f makefile.my
  5. sudo cp -f バイナリファイル /usr/local/bin/

手順 1 ~ 4 を正常に実行しているように見えるものにルール ファイルを調整する (ターゲットを追加する) ことができましたが、bzr builddeb -- -us -ucコマンドを使用してコンパイルが終了すると、「dpkg-genchanges: エラー: できません」というエラーが表示されます。 read files list file: No such file or directory" と表示され、本当に必要のない作業をたくさん行っているのか疑問に思います。結局のところ、ビルドとインストールのプロセスはそれほど複雑ではありません。

私の質問は次のとおりです。ルール ファイルを元に戻し、ビルド プロセスで上記の 5 つの手順を簡単に実装できますか、それとも、ルール ファイルを手動で編集して、これまでの手順を続行する必要がありますか? どちらの場合も、続行する方法についてのガイダンスが必要です:)

4

1 に答える 1

1

はい、ルール ファイルを元に戻し、dh フレームワーク内でこれらのステップを簡単に実装できます (これらのステップを逐語的に追加するのではなく)。

次のように見えるかもしれません

#!/usr/bin/make -f

%:
        dh $@

override_dh_auto_configure:
        sed -e "$my_sed_program" makefile.unix > makefile.my

override_dh_auto_build:
        make -f makefile.my

そして、でdebian/$packagename.install

binaryfile    /usr/bin

それはそのままでは機能しない可能性があります。ビルド プロセスがどのように機能するかの詳細に依存しますが、おそらくそれが近づくでしょう。

補足:本当に必要でない限り、 にインストールbinaryfileしないでください。/usr/local/binパッケージはそのまま/usr/localにして、そこに何を入れるかをローカル システム管理者に選択させる必要があります。OS は、パッケージが所有するファイルとそれらがどこにあるか、他のファイルと競合するかどうかを追跡する方法を知っているので、/usr/bin代わりにそれを入れることにマイナス面はないはずです。

于 2014-07-18T20:28:58.860 に答える