web-dev-qa-db-ja.com

Qtプログラムの.debパッケージを作成する方法は?

過去数日間、私は成功せずに、Qtインターフェースを備えたプログラムのdebパッケージを作成しようと試みてきました。これまでに行った前の手順:

  1. Gpgキーを作成し、Launchpadに登録しました。
  2. ~/.bashrcDEBEMAILおよびDEBFULLNAME変数で自分を識別しました。
  3. GitHubからソースコードをチェックアウトしました。
  4. プログラムを正常にビルドし(qmakeを使用してMakefileを生成します)、すべての依存関係を識別します。
  5. Makefileに加えて.desktopファイルと.xpmアイコンを含むソースフォルダーを作成しました。
  6. packagename-version.tar.gzという名前のこのフォルダーからtarballを作成しました。

この準備作業で、私は2つの異なるガイドに従うことを試みました。

  • 公式のUbuntuパッケージングガイド -正常に終了しますが、最終的な.debファイルにはdocフォルダーのみが含まれます。

  • xpressrazorの詳細ガイド -debuildを実行すると失敗し、次の暗号メッセージが表示されます。

    make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 debuild: fatal error at line 1364: dpkg-buildpackage -rfakeroot -D -us -uc failed

これらのガイドやその他のガイドでは、パッケージ化するプログラムが単一のソースファイルで構成される単純な例を常に示しています(bashスクリプトのみの場合もあります)。精巧なGUIを備えた適切なプログラムには単純すぎると思われます。この場合、dh_make以降の正確な手順は何ですか?

更新I:Pastebinに匿名バージョンの full debuild output を投稿しました。

更新IIdebuild output 、現在はDH_VERBOSE=1を使用。

4
Luís de Sousa

たまたまdhは、ほとんどのガイドやチュートリアルで紹介されている従来の方法でQtプログラムをパッケージ化するために使用することはできません。より具体的には、rulesファイルには、最後のMakefileに含めるために使用する必要があるスニペットを通知する必要があります。

これを達成する1つの方法は、cdbsパッケージを使用することです。

Sudo apt-get install cdbs

次に、rulesファイルを編集して、このパッケージのスニペットを含める必要があります。

#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/qmake.mk

これらはrulesファイルの唯一のコンテンツである必要があり、dhへの直接参照は削除するかコメントアウトする必要があります。

現時点では、debuildは操作可能である必要があり、次のように実行できます。

debuild -S

2
Luís de Sousa