Soporte de soporte para paquetes no ubuntu

13

He estado leyendo sobre apport y su uso durante una semana. Pero no podía entender las cosas a continuación.

Guión:

He desarrollado una aplicación y la he empaquetado. Y su nombre es MyApp.deb. El nombre del paquete binario es MyApp. La aplicación se instala en la ruta /opt/myapplication/bin/MyApp.

Requisito:

  1. Cuando mi aplicación falla, quiero poder recopilar el volcado del núcleo.
  2. En cada bloqueo posterior, tiene que crear un nuevo bloqueo, pero no sobrescribir el existente. Algo como renombrar automáticamente con la marca de tiempo actual, etc., me ayudaría.
  3. Cuando instalo mi aplicación en una máquina del cliente, mi instalador no debe modificar los parámetros de su sistema. Digamos, por ejemplo, que no debo cambiar el patrón de la generación de su archivo principal, porque el usuario / cliente podría odiar mi aplicación, ya que cambiaría los parámetros de su sistema sin su consentimiento.
  4. Estoy de acuerdo con la ruta de la generación de archivos principales. Ya sea el directorio actual o/var/crash

Cosas que he explorado hasta ahora:

Apport es una buena utilidad que permite la generación de archivos principales. Usando /proc/sys/kernel/core_patternpuedo formatear archivos principales. Esto proporciona flexibilidad para redirigir los archivos principales a un directorio predefinido, nombrar archivos principales con pid, patrón de ruta de archivo agregado o preparado previamente, etc. Para los paquetes que no son Ubuntu, tengo que escribir ganchos para generar volcados de núcleo (informes) . Apport después de recopilar el informe se cargará.

Cosas que no entiendo:

  1. ¿Apport es el que debo estar mirando? Quiero decir, ¿es suficiente mi propósito? ¿O debería estar mirando otra cosa?
  2. ¿En qué tipo de paquete se encuentra mi solicitud? ¿Lo llamo no ubuntu? Tercera parte? ¿Qué es? ¿Veo diferentes terminologías en los documentos?
  3. Como mencioné, se MyAppejecuta desde /opt/myapplication/bin/MyApp, entonces, ¿dónde se generarán los archivos principales? Dir actual o /var/crash? ¿Apport detecta los bloqueos provocados por el disparo /opt? ¿Lo interpreta?
  4. Pregunta importante: si he desarrollado la aplicación y si Apport sube el informe a los repositorios de Ubuntu, no tiene sentido. Entonces, ¿cómo puedo decirle a Apport que me envíe el informe?
  5. Me sale este error: executable does not belong to a package, ignoring. Entonces, ¿qué estoy haciendo mal?
  6. Para poder reconocer mi paquete, ¿debo convertirlo en un paquete fuente? ¿Es obligatorio? ¿Solo quiero crear un paquete binario?
  7. También vi en algún lugar de los documentos que Apport reconoce:
    1. Paquetes de Ubuntu o
    2. Launchpad, pero mi aplicación no es ninguna de estas. Entonces, ¿cómo me ayuda Apport en el escenario actual?
Sandeep
fuente
Una de las limitaciones de Apport en este momento: tiene que ser un paquete en el repositorio de ubuntu o al menos un proyecto en Launchpad. ¿Es esto último una opción para ti?
jokerdino
Gracias por la respuesta oportuna y respondiendo con claridad por mi larga pregunta. Por cierto, no mencioné en mi publicación anterior que mi aplicación es propietaria. Estamos planeando alojar nuestra aplicación en repositorios de ubuntu. Pero eso puede ser dentro de unos meses. Hasta entonces tengo que administrar los archivos principales manualmente.
Sandeep
¿En qué idioma está escrita la aplicación? También verifique una clase realizada para escribir los ganchos del paquete Apport .
jokerdino
Aplicación escrita en C ++. Las siguientes líneas del enlace me dejan confundido "<openweek4> PREGUNTA: ¿los ganchos funcionarán con aplicaciones de terceros? a Launchpad, pero sobre el proyecto ubuntuone. Por lo tanto, podría ser muy posible. Sin embargo, apport tendría que poder comunicarse con el sistema de seguimiento de errores apropiado ".
Sandeep
El autor dice que podría ser posible que las aplicaciones de terceros hagan uso de apport para obtener informes siempre que se establezca una comunicación entre apport y el sistema de seguimiento de errores de las aplicaciones de terceros. ¿Cómo se puede lograr esto? Si esto se puede lograr, entonces no necesito esperar a que mi aplicación se registre con ubuntu repo o launchpad.
Sandeep

Respuestas:

2
  1. Se ve de cerca, pero puede que no sea lo que necesita. Apport cambia automáticamente / proc / sys / kernel / core_pattern. Entonces, si eso no se puede cambiar, no tienes suerte. Por otro lado, apport está en la instalación predeterminada de Ubuntu ahora, por lo que prácticamente todos los que usan Ubuntu ya tienen ese parámetro modificado. Tampoco conozco ninguna forma de decirle a Apport que mantenga más que el bloqueo más reciente de una aplicación en particular, pero mientras se cargue cada bloqueo, eso no es un problema.
  2. Me referiría a él como un tercero.
  3. Apport admite ejecutables instalados en / opt. Deberá proporcionar un enlace en / opt / path / to / your / app / share / apport / package-hooks.
  4. Puede establecer una base de datos de bloqueo personalizada en el enlace de paquete para su paquete. Pero si su base de datos de bloqueo no actúa como debbugs o launchpad, también necesitará crear una implementación de conector de base de datos de bloqueo personalizada, que no parece que se pueda hacer sin instalar un archivo de Python fuera de / opt.
  5. El ejecutable debe ser instalado por dpkg, lo que significa que debe empaquetarlo en un archivo .deb.
  6. Debe crear un paquete fuente para crear un paquete binario, porque los paquetes binarios se crean a partir de paquetes fuente. No necesita distribuir el paquete fuente.
  7. Apport funciona con cualquier cosa empaquetada como un archivo .deb.
Deja de dañar a la comunidad
fuente
Parece que podría ser una respuesta muy útil, pero deja varias lagunas en la explicación: ¿Qué implica "proporcionar un gancho"? ¿Qué significa exactamente "actuar como debbugs o launchpad"? Punteros a los árbitros por favor?
BobDoolittle