web-dev-qa-db-ja.com

同じdebianディレクトリを使用して複数のdebianパッケージを作成する方法

インストール/配布のために、PCにアプリケーションをパッケージしています。 Ubuntuのdpkg機能を使用して、パッケージを正常に作成しました12.04。次に、同じファイル設定を使用して、複数のパッケージ(バイナリパッケージ(xxx.debなど)、ソースパッケージ(xxx.1.0-1-devel.deb))を作成する必要があります。 Debianフォルダーには、dpkg-buildpackage -rfakerootを使用したパッケージ化に必要なすべての変更されたファイルが含まれます。同じdebianファイルのセットアップを使用してすべての.debファイルを作成する必要がある場合。さらに何をする必要がありますか?

さらに、以下のものも私を混乱させます。 -develパッケージを含める必要があるもの開発ヘッダーファイルまたは開発ヘッダーファイルと、必要な共有ライブラリまたはヘッダーファイルを含むすべてのバイナリファイルのみですか?

5
Dig The Code

ターゲットプログラムはc/c ++または同様の言語であると想定しています。

  • 1つのバイナリパッケージにすべてのファイルを含めることができます。ただし、開発ファイルを別のファイルに分けるのが最善です。

    *-dev-develではなく)には、ヘッダー、静的ライブラリ、共有ライブラリ、およびバイナリツールのみを含める必要があります(これらのツールが開発にのみ使用される場合)。

  • debian/controlで単一ソースの複数のバイナリパッケージを宣言できます。最良の例は、sambaを例として学習することです:

    ソースパッケージ: http://packages.ubuntu.com/source/trusty/samba 、同じソースからビルドされたバイナリパッケージの数を確認します。

    1つ(メインパッケージ、samba-*。deb)を選択してみましょう: http://packages.ubuntu.com/trusty/samba 、右側を見る *-debian.tar.gz 。ダウンロードしてから開きます。 controlファイルを読み取ります。

    Source: samba
    ...
    
    Package: samba
    ...
    
    Package: samba-libs
    ...
    

    各バイナリパッケージには、インストールされるファイルとその場所をリストする独自の*.installファイルがあります。例:samba.installsamba-libs.install、..

  • ライブラリの場合、*-devパッケージにのみ含まれる静的なもの。

    同時にインストールできるバージョンが異なる場合は、共有バージョンを両方に含める必要があります。

    例、 samba-dev 、ページの下部で ファイルのリスト をクリックし、これは静的ライブラリ libc6-dev を使用します。

    そうでない場合は、共有ライブラリを通常のバイナリパッケージのみに配置し、開発パッケージの依存関係として追加します。

    参照:

5
user.dz