Apport支持非ubuntu包

我一直在阅读关于apport及其使用一周的内容。 但无法理解下面的事情。

场景:

我开发了一个应用程序并将其打包。 它的名字是MyApp.deb 。 二进制包名称是MyApp 。该应用程序安装在路径/opt/myapplication/bin/MyApp

需求:

  1. 当我的应用程序崩溃时,我希望能够收集核心转储。
  2. 在每次后续崩溃时,它都必须创建一个新的崩溃,但不会覆盖现有的崩溃。 使用当前时间戳等自动重命名等function对我有所帮助。
  3. 当我在客户机器上安装我的应用程序时,我的安装程序不得修改其系统范围的参数。 比方说,我不能改变他的核心文件生成的模式,因为用户/客户可能讨厌我的应用程序,因为我会在未经他同意的情况下更改他的系统参数。
  4. 我对核心文件生成的路径感到满意。 当前目录或/var/crash

到目前为止我所探讨的事情:

Apport是一个很好的实用程序,可以生成核心文件。 使用/proc/sys/kernel/core_pattern我可以格式化核心文件。 这提供了将核心文件重定向到预定义目录的灵活性,使用pid命名核心文件,附加文件路径模式或预先结束它等等。对于非Ubuntu软件包,我必须编写钩子来生成核心转储(报告) 。 收集报告后,Apport将上传。

我不明白的事情:

  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如何在当前场景中帮助我?

  1. 它看起来很接近,但可能不是你需要的。 Apport自动更改/ proc / sys / kernel / core_pattern。 所以,如果不能改变,那你就好运了。 另一方面,apport现在是默认的Ubuntu安装,所以几乎每个使用Ubuntu的人都已经改变了它的参数。 我也没有意识到有任何方法可以告诉apport保持比特定应用程序最近的崩溃更多,但只要每次崩溃都上传,这不是问题。
  2. 我将其称为第三方。
  3. Apport支持/ opt中安装的可执行文件。 您需要在/ opt / path /中提供一个钩子/ your / app / share / apport / package-hooks。
  4. 您可以在包的hook-hook中设置自定义崩溃数据库。 但是如果您的崩溃数据库不像debbugs或launchpad那样,您还需要创建一个自定义崩溃数据库连接器实现,如果不在/ opt之外安装python文件,它看起来就不会这样。
  5. 可执行文件需要由dpkg安装,这意味着您需要将其打包在.deb文件中。
  6. 您必须创建源包才能创建二进制包,因为二进制包是从源包创建的。 您不需要分发源包。
  7. Apport适用于打包为.deb文件的任何内容。
Interesting Posts