web-dev-qa-db-fra.com

Apporter un support pour les paquets non Ubuntu

Je lis des informations sur DIT et son utilisation depuis une semaine maintenant. Mais ne pouvait pas comprendre les choses ci-dessous.

Scénario:

J'ai développé une application et je l'ai emballée. Et son nom est MyApp.deb. Le nom du package binaire est MyApp. L'application est installée dans le chemin /opt/myapplication/bin/MyApp.

Exigence:

  1. Lorsque mon application se bloque, je veux pouvoir collecter le core dump.
  2. A chaque crash suivant, il doit créer un nouveau crash, sans toutefois écraser celui existant. Quelque chose comme renommage automatique avec l'horodatage actuel, etc. m'aiderait.
  3. Lorsque j'installe mon application sur une machine cliente, mon installateur ne doit pas modifier ses paramètres système. Par exemple, je ne dois pas changer le modèle de sa génération de fichiers, car l'utilisateur/client pourrait détester mon application car je changerais ses paramètres système sans son consentement.
  4. Je suis d'accord avec le chemin de la génération de fichiers de base. Répertoire actuel ou /var/crash

Choses que j'ai explorées jusqu'à maintenant:

Apport est un utilitaire Nice permettant la génération de fichiers de base. Utiliser /proc/sys/kernel/core_pattern Je peux formater les fichiers core. Cela offre la possibilité de rediriger les fichiers de base vers un répertoire prédéfini, de nommer les fichiers de base avec pid, le modèle de chemin de fichier ajouté ou préparé à sa fin, etc. . Apportez après avoir recueilli le rapport qu'il téléchargera.

Des choses que je ne comprends pas:

  1. Est-ce que Apport est celui que je dois regarder ?? Je veux dire, est-ce que cela suffit mon but? Ou devrais-je regarder quelque chose d'autre?
  2. Quel type de package ma demande relève-t-elle? Est-ce que je l'appelle non-ubuntu? 3ème partie? qu'Est-ce que c'est? Je vois différentes terminologies dans les documents?
  3. Comme je l'ai mentionné, MyApp fonctionne à partir de /opt/myapplication/bin/MyApp, alors où les fichiers de base seront-ils générés? Répertoire actuel ou /var/crash? Apport détecte-t-il les plantages déclenchés par /opt? Est-ce qu'il l'interprète?
  4. Question importante: Si j'ai développé l'application et si Apport télécharge le rapport dans les référentiels Ubuntu, cela n'a aucun sens. Alors, comment puis-je dire à Apport de m'envoyer le rapport?.
  5. Je reçois cette erreur: executable does not belong to a package, ignoring. Alors qu'est-ce que je fais mal?
  6. Pour queatt reconnaisse mon paquet, dois-je en faire un paquet source? Est-ce obligatoire? Je veux juste créer un paquet binaire?
  7. J'ai aussi vu quelque part dans les documents qu'Apport reconnaît:
    1. Forfaits Ubuntu ou
    2. Launchpad mais mon application n’est ni l’un ni l’autre. Alors, comment Apport m'aide-t-il dans le scénario actuel?
13
Sandeep
  1. Cela semble proche, mais ce n’est peut-être pas ce dont vous avez besoin. Apport change automatiquement/proc/sys/kernel/core_pattern. Donc, si cela ne peut pas être changé, vous avez peu de chance. D'un autre côté, apport est dans l'installation par défaut d'Ubuntu, donc pratiquement tout le monde utilisant Ubuntu a déjà changé ce paramètre. Je ne suis pas au courant d'aucun moyen de dire à apport de conserver plus que le crash le plus récent d'une application particulière, mais tant que chaque crash est téléchargé, ce n'est pas un problème.
  2. Je parlerais de tiers.
  3. Apport prend en charge les exécutables installés dans/opt. Vous devrez fournir un point d'ancrage dans/opt/path/to/votre/app/share/apport/package-hooks.
  4. Vous pouvez définir une base de données de crash personnalisée dans le paquet-hook pour votre paquet. Mais si votre base de données sur les incidents ne fonctionne pas comme un debbugs ou un tableau de bord, vous devez également créer une implémentation personnalisée du connecteur de la base de données sur les incidents, qui ne semble pas pouvoir être réalisée sans l'installation d'un fichier python en dehors de. /opter.
  5. Le fichier exécutable doit être installé par dpkg, ce qui signifie que vous devez le conditionner dans un fichier .deb.
  6. Vous devez créer un package source pour créer un package binaire, car les packages binaires sont créés à partir de packages source. Vous n'avez pas besoin de distribuer le paquet source.
  7. Apport fonctionne avec tout ce qui est emballé dans un fichier .deb.
2
rockwalrus