バイナリファイルとバイナリ以外のファイルを含むパッケージのソースdebを作成するには?

バイナリファイルとバイナリ以外のファイルを含むパッケージのソースdebを作成するには?

私は現在、一般的なプログラム(シェルスクリプト、Pythonコードなど)とバイナリ(コンパイルされたCコード)のコレクションをdeb含むパッケージを作成しています。gccパッケージ生成のガイドラインを満たすには、バイナリのソースコードを含むソースパッケージが必要です。私のパッケージにはバイナリファイルが1つしかあり、残りはプレーンテキストプログラムなので、ソースパッケージを作成するにはどうすればよいですか?

詳細な説明:私のソースコードパッケージは

  1. ディレクトリがあり、DEBIANバイナリパスのみがあります(バイナリのソースコードに置き換えますか?)
  2. ディレクトリのないディレクトリにバイナリのソースコードを入れて、DEBIANそのgunzipディレクトリに入れますか?
  3. 実際のパッケージとまったく同じディレクトリレイアウトを持ち、バイナリを独自のソースコード(例:bin/somebinarybe bin/somebinary.c)に置き換えますか?

    どんな助けでも大変感謝します!

答え1

使用dh_makeパッケージ用のテンプレートを作成します。いくつかの質問をし、必要なdebianディレクトリを作成します。

バイナリ実行可能ファイルとアーキテクチャに依存しないプログラムの両方を含むパッケージには、単一のアーキテクチャに依存するバイナリパッケージを作成するか、バイナリ実行可能ファイルを含み、アーキテクチャに依存しないバイナリパッケージを含むアーキテクチャに依存するバイナリパッケージを作成する2つのオプションがあります。スクリプトおよび他のアーキテクチャ独立ファイル。アーキテクチャに依存しないパッケージの主な利点は、複数のアーキテクチャのパッケージ展開イメージを保存する際のスペースを節約することです。マルチアーキテクチャのインストールがあり、複数のアーキテクチャ用のバイナリをインストールする場合は、アーキテクチャに依存しないファイルをアーキテクチャに依存しないパッケージに配置する必要があります。これを気にしない限り、パッケージを作成する方が簡単です。 2つのパッケージを作成することにした場合、通常はfooアーキテクチャに依存するfoo-commonか、foo-dataアーキテクチャに依存しないアーキテクチャに依存するパッケージがあります。

ソースパッケージには、サブディレクトリのdebパッケージングスクリプトdebian、コンパイルされたプログラムのソースコード、さまざまなスクリプトなど、バイナリパッケージを準備するために必要なすべてが含まれています。アップストリーム・アーカイブをソース・アーカイブとして保持し、deb ソース・パッケージを作成するためにファイルを再構成または削除しないでください。

Debhelper( dh) ビルド自動化ツールは、バイナリパッケージのディレクトリ構造をアセンブルする作業を担当します。ソースツリーのディレクトリ構造とインストールされたパッケージのディレクトリ構造との間には関係はありません。デフォルトdebian/rules

%:
        dh $@

コマンドでない場合は、その宛先./configure && make && make installをに追加しますdebian/rules。たとえば、オプションを次に渡します./configure

configure:
        ./configure --with-foo

インストールファイルの場合、コピーする必要があるファイルを一覧表示すると、そのdebian/PACKAGENAME.installファイルがコピーされます。dh_install。作成するディレクトリを一覧表示しますdebian/PACKAGENAME.dirs(例:dh_installdirs)。

より開発者マニュアルすべての設定可能なステップについて。ビルド出力、マニュアルページ、フォント、共有ライブラリ、Perlモジュールなどを自動的にインストールできます。

詳細については、次を参照してください。

答え2

まず、これは非常に広範なトピックです。dpkg-buildpackgeソースコードでビルドソースパッケージを使用できます。あなたがDebianパッケージングをどうするべきかを明示的に述べたので、これについて書いてみましょう。

  • debianソースフォルダにディレクトリが必要です。
  • rulesauto configuredebian ディレクトリで deb ヘルパーキーワードを使用するか、などのいくつかの deb ヘルパー ルールをオーバーライドする必要がありますstrip(例: usingoverride_dh_auto_configure:などoverride_dh_strip)。
  • どこに配置するかを指定するファイルが必要ですpackage.install。たとえば、バイナリを作成した場合は、バイナリをインストールする必要があるバイナリへのパスを参照する必要があります。共有オブジェクト(.so)ファイルがある場合に言及する必要があります。使っていればautomakeとても簡単です。Makefile.amバイナリやライブラリをどこにインストールする必要があるかを言及するときに言及するだけです。
  • controlビルドの依存関係とパッケージの依存関係を参照するファイルが必要です。 (Debian パッケージのインストールに必要なもの)
  • Debianパッケージのインストール後の作業/変更を実行するためのインストール後のスクリプト。 (たとえば、インストール後にファイル権限などを変更したい場合)
  • changelogパッケージ変更の説明とバージョン番号を含むファイル。

    すべてが順調に進んだら、ファイルをdpkg-buildpackage受け取る必要がありますpackage_arch_version.deb

私が言ったように、これは途方もないトピックです。 Debianパッケージの外観とその中に何が含まれているかについてのアイデアを提供するだけです。要件に応じてこれらのファイルをカスタマイズする必要があります。

関連情報