web-dev-qa-db-ja.com

Ubuntuソースパッケージの依存関係ツリー

パッケージがいくつかあります。 A.debB.deb、およびC.debと呼びましょう。各パッケージには、対応するソースパッケージA.dscA.tar.gzB.dscB.tar.gzC.dscC.tar.gzがあります。パッケージは互いに依存しています:C.debB.debに依存し、B.debA.debに依存します

A.debを変更した場合、B.debを再構築する必要があります。再構築しないと機能しません。 B.debC.debについても同じことが言えます。このプロセスを自動化する方法はありますか?おそらく私のためにそれを行うツールまたはスクリプトがありますか?そうでない場合、どうすれば自分で自動化できますか?

さらに、私のパッケージはありません。

10
xiaodongjie

たとえば、次のように、ビルドの依存関係を宣言したMakefileを使用します。

default: A.deb B.deb C.deb

C.deb: B.deb C.dsc C.tar.gz
        <command(s) to build C.deb>

B.deb: A.deb B.dsc B.tar.gz
        <command(s) to build B.deb>

A.deb: A.dsc A.tar.gz
        <command(s) to build A.deb>

コマンドのインデントはTABであることに注意してください。

Makefileを使用して、コマンドを使用します

make

これにより、ファイルのタイムスタンプに応じて、どのパッケージをどの順序で作成し、次にビルドするかが決まります。たとえば、B.tar.gzのタイムスタンプがB.debより遅い場合(つまり、パッケージBに新しいソースがある場合)、最初にB.debが再構築されます。 C.debよりも後でスタンプされると、C.debも再構築されます。

3

まあ、多分私はあなたのポイントを完全に失っていますが、あなたはパッケージAを再コンパイルしていて、パッケージBとCを再コンパイルしたいようです、私は単に makefile のために.

1
karoshi