web-dev-qa-db-ja.com

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

私は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は現在のシナリオでどのように役立ちますか?
13
Sandeep
  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ファイルとしてパッケージ化されたもので動作します。
2
rockwalrus