Ubuntu以外のパッケージのサポートをサポート


13

私は今までapportとその使い方について一週間読んでいます。しかし、以下のことを理解できませんでした。

シナリオ:

アプリケーションを開発し、パッケージ化しました。そしてその名前はMyApp.deb。バイナリパッケージ名はMyAppです。アプリケーションはパスにインストールされます/opt/myapplication/bin/MyApp

要件:

  1. アプリケーションがクラッシュしたときに、コアダンプを収集できるようにします。
  2. 後続の各クラッシュでは、新しいクラッシュを作成する必要がありますが、既存のクラッシュは上書きしません。現在のタイムスタンプでの自動名前変更などが役立ちます。
  3. カスタマーマシンにアプリケーションをインストールするとき、インストーラーはシステム全体のパラメーターを変更してはなりません。たとえば、ユーザーの同意なしにシステムパラメータを変更するため、ユーザー/顧客が私のアプリケーションを嫌う可能性があるため、私は彼のコアファイル生成のパターンを変更してはなりません。
  4. コアファイル生成のパスは問題ありません。現在のディレクトリまたは/var/crash

私が今までに探索したこと:

Apportは、コアファイルの生成を可能にする優れたユーティリティです。使用する/proc/sys/kernel/core_patternと、コアファイルをフォーマットできます。これにより、コアファイルを定義済みのディレクトリにリダイレクトしたり、コアファイルにpidを付けたり、ファイルパスパターンを追加または追加するなどの柔軟性が得られます。Ubuntu以外のパッケージの場合、コアダンプ(レポート)を生成するフックを作成する必要があります。レポートを収集した後、アップロードします。

私が理解できないこと:

  1. Apportは私が見なければならないものですか?? それは私の目的で十分ですか?それとも、他の何かを見るべきですか?
  2. 私のアプリケーションはどのようなパッケージに該当しますか?非ubuntuと呼びますか?第三部?それは何ですか?ドキュメントに異なる用語が表示されますか?
  3. 前述のとおり、MyAppはから実行される/opt/myapplication/bin/MyAppので、コアファイルはどこで生成されますか?現在のディレクトリまたは/var/crash?Apportは、からトリガーされたクラッシュを検出し/optますか?解釈しますか?
  4. 重要な質問:アプリケーションを開発し、ApportがレポートをUbuntuリポジトリにアップロードする場合、意味がありません。それでは、Apportにレポートを送信するよう指示する方法を教えてください。
  5. このエラーが表示されます:executable does not belong to a package, ignoring。それで、私は何が間違っていますか?
  6. apportがパッケージを認識するためには、ソースパッケージにする必要がありますか?必須ですか?バイナリパッケージを作成したいだけですか?
  7. また、Apportが認識する文書のどこかを見ました。
    1. Ubuntuパッケージまたは
    2. Launchpadアプリケーションですが、私のアプリケーションはこれらのいずれでもありません。それでは、Apportは現在のシナリオでどのように役立ちますか?

現在のApportの制限の1つ-これは、ubuntuリポジトリ内のパッケージ、または少なくともLaunchpad上のプロジェクトでなければなりません。後者はあなたにとって選択肢ですか?
jokerdino

タイムリーな返信と、私の長い質問に対する明確な回答に感謝します。ところで、私は以前の投稿で、私のアプリケーションが所有権を持っていることについて言及するのを逃しました。ubuntuリポジトリでアプリケーションをホストする予定です。しかし、それは今から数ヶ月後かもしれません。それまでは、コアファイルを手動で管理する必要があります。
サンディープ


C ++で書かれたアプリ。リンクからの次の行は、私を混乱させます。 "<openweek4>質問:apportフックは、サードパーティのアプリケーションで動作しますか?openweek4:私は実際にその質問について確かではありません。 Launchpadに、しかしubuntuoneプロジェクトについて。だから、それは非常に可能かもしれません。しかし、apportは適切なバグ追跡システムと通信できなければなりません。」
サンディープ

著者は、apportとサードパーティアプリケーションのバグ追跡システムとの通信が確立されている限り、サードパーティのアプリケーションがapportを使用してレポートを取得できる可能性があると述べています。どうすればこれを達成できますか?これが実現できれば、アプリケーションがubuntuリポジトリまたはランチパッドに登録されるのを待つ必要はありません。
サンディープ

回答:


2
  1. よく見えますが、必要なものではないかもしれません。Apportは/ proc / sys / kernel / core_patternを自動的に変更します。それを変更できない場合、あなたはほとんど運がありません。一方、apportは現在デフォルトのUbuntuインストールに含まれているため、事実上、Ubuntuを使用するすべてのユーザーが既にそのパラメーターを変更しています。また、特定のアプリからの最新のクラッシュ以上のものを保持するようにapportに指示する方法も知りませんが、各クラッシュがアップロードされる限り、それは問題ではありません。
  2. サードパーティと呼んでいます。
  3. Apportは、/ optにインストールされた実行可能ファイルをサポートします。/ opt / path / to / your / app / share / apport / package-hooksにフックを提供する必要があります。
  4. パッケージのpackage-hookでカスタムクラッシュデータベースを設定できます。ただし、クラッシュデータベースがデバッグまたはランチパッドのように動作しない場合は、カスタムクラッシュデータベースコネクタの実装も作成する必要があります。これは、/ optの外部にpythonファイルをインストールしなければ実行できないようには見えません。
  5. 実行可能ファイルはdpkgでインストールする必要があります。つまり、.debファイルにパッケージ化する必要があります。
  6. バイナリパッケージはソースパッケージから作成されるため、バイナリパッケージを作成するにはソースパッケージを作成する必要があります。ソースパッケージを配布する必要はありません。
  7. Apportは、.debファイルとしてパッケージ化されたもので動作します。

これは非常に有用な答えになりそうですが、説明にいくつかのギャップがあります。「フックを提供する」とはどういうことですか?「debbugsまたはlaunchpadのように振る舞う」とはどういう意味ですか?参照へのポインタをお願いします?
BobDoolittle 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.