DEB:マルチパッケージ、パッケージビルドプロセス中の特定のファイルのインストールを無視する

DEB:マルチパッケージ、パッケージビルドプロセス中の特定のファイルのインストールを無視する

dh_auto_install:ファイルの宛先をオーバーライドしましたdebian/rule。今私が作ったすべてのコンポーネントがdebian/tmp

私のセットの各パッケージを準備しましたが、package.install次の問題が発生しました。

パッケージには2つのファイルをA含める必要がありますscripts

パッケージにはdirBも含める必要がありますscriptsが、パッケージには2つのファイルはありませんA

もちろん、ファイルscripts内のディレクトリにファイルを設定することもできますdebian/B.install。しかし、scriptsdirには多くのファイルが含まれているため、各ファイルを配置するのに時間がかかります。

package.installファイルから特定のファイルを除外できますか?

ベストアンサー1

package.installファイルから特定のファイルを除外できますか?

直接的ではありませんが、必要なものを達成するには少なくとも3つの方法があります。 (rewritingに言及したので、短いスタイルをdh_install使用していると思います。)dhrules

  1. dh_install コピーファイルをdebian/tmp宛先に送信します。以前のバージョンはdh_movefilesそれを移動しましたが廃止予定ですが、この場合は引き続き使用できます。これを行うには、AパッケージBの前にパッケージを一覧表示しdebian/control(両方が同じアーキテクチャを持っていると仮定して最初に処理されるように)、名前を変更してA.install最初に実行するようにA.filesオーバーライドすることです。dh_installdh_movefiles

    override_dh_install:
            dh_movefiles
            dh_install
    

    これにより、ファイルが一覧表示され、残っているすべてのファイルが含まれるようにAファイルが移動されます。debian/tmpB.installscriptsBscripts

    シーケンスdhをスキップするdh_movefilesので、2回実行されないように特別なタスクを実行する必要はありません。

  2. debhelperプロファイルは実行可能なので、コンテンツを1つにまとめてB.installフィルタリングscriptsできますA.install

  3. 別の方法はステップを追加してdh_installから。AB

    override_dh_install:
            dh_install
            cd debian/A/scripts; find . -type f -exec rm -f ../B/scripts/{} \;
    

    (検証されていません)。

おすすめ記事