Поддержка Apport для не Ubuntu пакетов

Я читаю об apport и его использовании уже неделю. Но не мог понять нижеприведенные вещи.

Сценарий:

Я разработал приложение и упаковал его. И его зовут MyApp.deb, Имя бинарного пакета MyApp Приложение установлено в пути /opt/myapplication/bin/MyApp,

Требование:

  1. Когда мое приложение падает, я хочу иметь возможность собирать дамп памяти.
  2. При каждом последующем сбое он должен создавать новый сбой, но не перезаписывать существующий. Мне может помочь что-то вроде автоматического переименования с отметкой текущего времени и т. Д.
  3. Когда я устанавливаю свое приложение на клиентском компьютере, мой установщик не должен изменять общесистемные параметры. Скажем, например, я не должен менять шаблон генерации его основного файла, потому что пользователь / клиент может ненавидеть мое приложение, так как я изменил бы его системные параметры без его согласия.
  4. Я в порядке с путем генерации файла ядра. Либо текущий каталог или /var/crash

Вещи, которые я исследовал до сих пор:

Apport - хорошая утилита, которая позволяет генерировать основные файлы. С помощью /proc/sys/kernel/core_pattern Я могу отформатировать основные файлы. Это обеспечивает гибкость для перенаправления файлов ядра в предопределенный каталог, именования файлов ядра с помощью pid, шаблона пути к файлу, добавленного или подготовленного к нему, и т. Д. Для пакетов, отличных от Ubuntu, я должен написать хуки для создания дампов ядра (отчетов), Apport после сбора отчета будет загружен.

Вещи, которые я не понимаю

  1. Является ли Apport тем, на кого я должен смотреть?? Я имею в виду, достаточно ли моей цели? Или я должен смотреть на что-то еще?
  2. К какой упаковке относится мое приложение? Я называю это не Ubuntu? 3-я часть? что это? Я вижу разные термины в документах?
  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. Приложения панели запуска, но мое приложение не относится ни к одному из них. Так как же Apport помогает мне в текущем сценарии?

1 ответ

  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 для вашего пакета. Но если ваша база данных о сбоях не работает как debbugs или launchpad, вам также нужно создать собственную реализацию коннектора базы данных о сбоях, что не похоже на то, что это можно сделать без установки файла python вне / opt.
  5. Исполняемый файл должен быть установлен dpkg, что означает, что вам нужно упаковать его в файл.deb.
  6. Вы должны создать исходный пакет, чтобы создать двоичный пакет, потому что двоичные пакеты создаются из исходных пакетов. Вам не нужно распространять исходный пакет.
  7. Apport работает со всем, что упаковано как файл.deb.
Другие вопросы по тегам