Prise en charge Apport pour les packages non Ubuntu

13

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

Scénario:

J'ai développé une application et l'ai packagé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 souhaite pouvoir collecter le vidage de mémoire.
  2. Lors de chaque crash suivant, il doit créer un nouveau crash, mais pas écraser celui existant. Quelque chose comme le renommage automatique avec l'horodatage actuel, etc. m'aiderait.
  3. Lorsque j'installe mon application sur une machine client, mon installateur ne doit pas modifier ses paramètres à l'échelle du système. Disons, par exemple, que je ne dois pas modifier le modèle de génération de son fichier principal, car l'utilisateur / le client pourrait détester mon application, car je modifierais ses paramètres système sans son consentement.
  4. Je suis d'accord avec le chemin de génération du fichier principal. Soit le répertoire courant ou/var/crash

Choses que j'ai explorées jusqu'à présent:

Apport est un bel utilitaire qui permet les générations de fichiers de base. L'utilisation de /proc/sys/kernel/core_patternJe peux formater les fichiers de base. Cela offre la flexibilité de rediriger les fichiers core vers un répertoire prédéfini, de nommer les fichiers core avec pid, le modèle de chemin de fichier ajouté ou pré-terminé, etc. Pour les packages non Ubuntu, je dois écrire des hooks pour générer des vidages de mémoire (rapports) . Apportez après avoir collecté le rapport, il sera téléchargé.

Des choses que je ne comprends pas:

  1. Apport est-il celui que je dois regarder ?? Je veux dire, cela suffit-il à mon but? Ou devrais-je regarder autre chose?
  2. À quel type de package ma demande appartient-elle? Dois-je l'appeler non-ubuntu? 3e partie? qu'Est-ce que c'est? Je vois des terminologies différentes dans les documents?
  3. Comme je l'ai mentionné, MyApps'exécute à partir de /opt/myapplication/bin/MyApp, alors où les fichiers de base seront-ils générés? Dir actuel ou /var/crash? Apport détecte-t-il les plantages déclenchés /opt? L'interprète-t-il?
  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 que répart reconnaisse mon package, dois-je en faire un package source? Est-ce obligatoire? Je veux juste créer un paquet binaire?
  7. J'ai également vu quelque part dans les documents qu'Apport reconnaît:
    1. Forfaits Ubuntu ou
    2. Applications du tableau de bord, mais mon application n'est ni l'une ni l'autre. Alors, comment Apport m'aide-t-il dans le scénario actuel?
Sandeep
la source
L'une des limitations d'Apport en ce moment - Il doit s'agir d'un package dans le référentiel ubuntu ou au moins d'un projet sur Launchpad. Ce dernier est-il une option pour vous?
jokerdino
Merci pour la réponse opportune et pour avoir répondu avec clarté à ma longue question. BTW, j'ai manqué de mentionner dans mon post précédent, que mon application est propriétaire. Nous prévoyons d'héberger notre application sur des référentiels ubuntu. Mais cela pourrait être dans quelques mois. Jusque-là, je dois gérer les fichiers de base manuellement.
Sandeep
Dans quelle langue la candidature est-elle rédigée? Consultez également un cours organisé pour écrire des crochets de package Apport .
jokerdino
Application écrite en C ++. Les lignes suivantes du lien me laissent perplexe "<openweek4> QUESTION: est-ce que les hooks fonctionneront avec les applications tierces? Openweek4: Je ne suis vraiment pas certain de cette question. Si vous regardez le hook ubuntuone-client - les bugs sont signalés au Launchpad, mais au sujet du projet ubuntuone. Cela pourrait donc très bien être possible. Cependant, répart devrait être en mesure de communiquer avec le système de suivi des bogues approprié. "
Sandeep
L'auteur dit qu'il pourrait être possible pour des applications tierces d'utiliser la répartition pour obtenir des rapports tant qu'une communication est établie entre la répartition et le système de suivi des bogues des applications de la troisième application. Comment cela peut il etre accompli? Si cela peut être réalisé, je n'ai pas besoin d'attendre que ma demande soit enregistrée auprès de Ubuntu Repo ou Launchpad.
Sandeep

Réponses:

2
  1. Il semble proche, mais 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 n'avez pas de chance. D'un autre côté, répart est maintenant dans l'installation par défaut d'Ubuntu, donc pratiquement tout le monde utilisant Ubuntu a déjà modifié ce paramètre. Je ne connais pas non plus de moyen de dire à quote 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 dirais que c'est un tiers.
  3. Apport prend en charge les exécutables installés dans / opt. Vous devrez fournir un hook dans / opt / path / vers / votre / app / share / répart / package-hooks.
  4. Vous pouvez définir une base de données de plantage personnalisée dans le package-hook de votre package. Mais si votre base de données de crash n'agit pas comme un débogage ou un tableau de bord, vous devrez également créer une implémentation de connecteur de base de données de crash personnalisée, qui ne semble pas pouvoir être effectuée sans installer un fichier python en dehors de / opt.
  5. L'exécutable doit être installé par dpkg, ce qui signifie que vous devez l'empaqueter dans un fichier .deb.
  6. Vous devez créer un package source afin de créer un package binaire, car les packages binaires sont créés à partir des packages source. Vous n'avez pas besoin de distribuer le package source.
  7. Apport fonctionne avec tout ce qui est présenté sous forme de fichier .deb.
Arrêtez de nuire à la communauté
la source
Il semble que cela pourrait être une réponse très utile, mais cela laisse plusieurs lacunes dans l'explication: Qu'est-ce que "fournir un crochet" implique? Que signifie exactement "agir comme des débogages ou un tableau de bord"? Pointeurs vers les références s'il vous plaît?
BobDoolittle