私は今までapportとその使い方について一週間読んでいます。しかし、以下のことを理解できませんでした。
シナリオ:
アプリケーションを開発し、パッケージ化しました。そしてその名前はMyApp.deb
。バイナリパッケージ名はMyApp
です。アプリケーションはパスにインストールされます/opt/myapplication/bin/MyApp
。
要件:
- アプリケーションがクラッシュしたときに、コアダンプを収集できるようにします。
- 後続の各クラッシュでは、新しいクラッシュを作成する必要がありますが、既存のクラッシュは上書きしません。現在のタイムスタンプでの自動名前変更などが役立ちます。
- カスタマーマシンにアプリケーションをインストールするとき、インストーラーはシステム全体のパラメーターを変更してはなりません。たとえば、ユーザーの同意なしにシステムパラメータを変更するため、ユーザー/顧客が私のアプリケーションを嫌う可能性があるため、私は彼のコアファイル生成のパターンを変更してはなりません。
- コアファイル生成のパスは問題ありません。現在のディレクトリまたは
/var/crash
私が今までに探索したこと:
Apportは、コアファイルの生成を可能にする優れたユーティリティです。使用する/proc/sys/kernel/core_pattern
と、コアファイルをフォーマットできます。これにより、コアファイルを定義済みのディレクトリにリダイレクトしたり、コアファイルにpidを付けたり、ファイルパスパターンを追加または追加するなどの柔軟性が得られます。Ubuntu以外のパッケージの場合、コアダンプ(レポート)を生成するフックを作成する必要があります。レポートを収集した後、アップロードします。
私が理解できないこと:
- Apportは私が見なければならないものですか?? それは私の目的で十分ですか?それとも、他の何かを見るべきですか?
- 私のアプリケーションはどのようなパッケージに該当しますか?非ubuntuと呼びますか?第三部?それは何ですか?ドキュメントに異なる用語が表示されますか?
- 前述のとおり、
MyApp
はから実行される/opt/myapplication/bin/MyApp
ので、コアファイルはどこで生成されますか?現在のディレクトリまたは/var/crash
?Apportは、からトリガーされたクラッシュを検出し/opt
ますか?解釈しますか? - 重要な質問:アプリケーションを開発し、ApportがレポートをUbuntuリポジトリにアップロードする場合、意味がありません。それでは、Apportにレポートを送信するよう指示する方法を教えてください。
- このエラーが表示されます:
executable does not belong to a package, ignoring
。それで、私は何が間違っていますか? - apportがパッケージを認識するためには、ソースパッケージにする必要がありますか?必須ですか?バイナリパッケージを作成したいだけですか?
- また、Apportが認識する文書のどこかを見ました。
- Ubuntuパッケージまたは
- Launchpadアプリケーションですが、私のアプリケーションはこれらのいずれでもありません。それでは、Apportは現在のシナリオでどのように役立ちますか?
現在のApportの制限の1つ-これは、ubuntuリポジトリ内のパッケージ、または少なくともLaunchpad上のプロジェクトでなければなりません。後者はあなたにとって選択肢ですか?
—
jokerdino
タイムリーな返信と、私の長い質問に対する明確な回答に感謝します。ところで、私は以前の投稿で、私のアプリケーションが所有権を持っていることについて言及するのを逃しました。ubuntuリポジトリでアプリケーションをホストする予定です。しかし、それは今から数ヶ月後かもしれません。それまでは、コアファイルを手動で管理する必要があります。
—
サンディープ
アプリケーションは何語で書かれていますか?また、Apportパッケージフックを記述するために行われたクラスをチェックアウトします。
—
jokerdino
C ++で書かれたアプリ。リンクからの次の行は、私を混乱させます。 "<openweek4>質問:apportフックは、サードパーティのアプリケーションで動作しますか?openweek4:私は実際にその質問について確かではありません。 Launchpadに、しかしubuntuoneプロジェクトについて。だから、それは非常に可能かもしれません。しかし、apportは適切なバグ追跡システムと通信できなければなりません。」
—
サンディープ
著者は、apportとサードパーティアプリケーションのバグ追跡システムとの通信が確立されている限り、サードパーティのアプリケーションがapportを使用してレポートを取得できる可能性があると述べています。どうすればこれを達成できますか?これが実現できれば、アプリケーションがubuntuリポジトリまたはランチパッドに登録されるのを待つ必要はありません。
—
サンディープ