1

何百ものチュートリアルを読んでいますが、まだこれに頭を悩ませることはできません:

  • アップストリームが提供する foo-1.2.3.tar.bz2 というアップストリーム パッケージがあります。
  • ファイルを /tmp/debplayground/ に置きます。
  • そのパッケージを手動でインストールする方法は、 cd /tmp/debplayground/ && tar -xvf foo-1.2.3.tar.bz2 && cd foo-1.2.3 && ./configure --prefix=/usr && make && sudo make です。インストール
  • パッケージに「special-foo」という名前を付けたいです。
  • ソースパッケージには興味がなく、バイナリパッケージ (.deb ファイル) を生成したいだけです。

上記の前提を踏まえて、ここに私の質問があります:

  1. 「dh_make -i --createorig」を介して基本的な debian pkg ファイルを作成できるようにするには、「special-foo-1.2.3」というフォルダーを作成し、その中で dh を呼び出す必要がありますよね? しかし、foo-1.2.3.tar.bz2 を special-foo-1.2.3.tar.bz2 に名前変更する必要がありますか?
  2. .tar.bz2 または dpkg-buildpackage を解凍する必要がありますか?
  3. dh_make によって作成された debian/ フォルダーに関連してアップストリーム tarball をどこに置く必要があるので、dpkg-buildpackage は ./configure を呼び出して正しく make しますか?
4

1 に答える 1

0
  1. dh_make は、この点で少しばかげています。私はそれを幸せにする方法を考え出すのにあまり時間をかけません。本当に気にする必要があるのは、セットアップするパッケージ テンプレートだけです。あなたの質問がここにあると思うことに答えるために、「ネイティブ」パッケージを作成していない場合、dpkg-buildpackage は、ソースパッケージの一部../special-foo_1.2.3.orig.tar.{gz,bz2,lzma}を正しく生成するために、ビルド時に呼び出されるファイルを見つけることを期待します。 .diff.gzDebian パッケージのアップストリーム ソースへの変更を特定します。dh_make は通常、アップストリームの tarball が何であるかを伝えると、シンボリック リンクを作成します。

  2. パッケージ情報を配置するために、元の .tar.bz2 を少なくとも 1 回解凍する必要があります (#3 を参照)。ただし、その後は解凍する必要はありません。dpkg-source (必要に応じて dpkg-buildpackage によって呼び出されます) は、新しい diff を生成する必要がある場合に、tmp ディレクトリで単独で実行します。

  3. フォルダーdebian/は、パッケージ ソース ツリーの最上位にある必要があります。あなたの場合、それは/tmp/debplayground/foo-1.2.3/debian.

于 2013-03-07T17:58:24.073 に答える