Suporte do Apport para pacotes não ubuntu


13

Estou lendo sobre o apport e seu uso há uma semana. Mas não conseguia entender as coisas abaixo.

Cenário:

Eu desenvolvi um aplicativo e o empacotei. E seu nome é MyApp.deb. O nome do pacote binário é MyApp. O aplicativo é instalado no caminho /opt/myapplication/bin/MyApp.

Requerimento:

  1. Quando meu aplicativo falha, desejo poder coletar o dump principal.
  2. Em cada falha subsequente, é necessário criar uma nova falha, mas não substituindo a existente. Algo como renomear automaticamente com o carimbo de hora atual, etc, me ajudaria.
  3. Quando instalo meu aplicativo em uma máquina cliente, meu instalador não deve modificar os parâmetros em todo o sistema. Por exemplo, por exemplo, não devo alterar o padrão de geração de arquivos principais, porque o usuário / cliente pode odiar meu aplicativo, pois eu alteraria os parâmetros do sistema sem o consentimento dele.
  4. Eu estou bem com o caminho da geração de arquivos principais. Diretório atual ou/var/crash

Coisas que eu tenho explorado até agora:

O Apport é um bom utilitário que permite gerações de arquivos principais. Usando /proc/sys/kernel/core_patterneu posso formatar arquivos principais. Isso fornece flexibilidade para redirecionar os arquivos principais para um diretório predefinido, nomear arquivos principais com pid, padrão de caminho de arquivo anexado ou pré-finalizado a ele, etc. Para pacotes que não são do Ubuntu, preciso criar ganchos para gerar dumps principais (relatórios) . Apport após coletar o relatório, ele será carregado.

Coisas que eu não entendo:

  1. Apport é o que eu devo estar olhando ?? Quero dizer, é suficiente o meu propósito? Ou devo olhar para outra coisa?
  2. Em que tipo de pacote meu aplicativo se enquadra? Eu chamo de não-ubuntu? 3ª parte? O que é isso? Vejo terminologias diferentes nos documentos?
  3. Como mencionei, MyAppé executado a partir de /opt/myapplication/bin/MyApp, então de onde os arquivos principais serão gerados? Dir atual ou /var/crash? O Apport detecta falhas ocorridas /opt? Ele interpreta isso?
  4. Pergunta importante: Se eu desenvolvi o aplicativo e se o Apport carrega o relatório nos repositórios do Ubuntu, isso não faz sentido. Então, como posso dizer ao Apport para me enviar o relatório.
  5. Eu recebo este erro: executable does not belong to a package, ignoring. Então, o que estou fazendo de errado?
  6. Para que o apport reconheça meu pacote, preciso transformá-lo em um pacote de origem? Isso é obrigatório? Eu só quero criar um pacote binário?
  7. Eu também vi em algum lugar nos documentos que o Apport reconhece:
    1. Pacotes Ubuntu ou
    2. Aplicativos da barra de ativação, mas meu aplicativo não é um deles. Então, como o Apport me ajuda no cenário atual?

Uma das limitações do Apport agora - deve ser um pacote no repositório ubuntu ou pelo menos um projeto no Launchpad. Este último é uma opção para você?
jokerdino

Obrigado pela resposta oportuna e por responder com clareza à minha longa pergunta. Aliás, esqueci de mencionar no meu post anterior, que meu aplicativo é proprietário. Estamos planejando hospedar nosso aplicativo nos repositórios do ubuntu. Mas isso pode ser daqui a alguns meses. Até então, eu tenho que gerenciar os arquivos principais manualmente.
Sandeep

Em que idioma o aplicativo está escrito? Confira também uma aula realizada para escrever ganchos de pacotes Apport .
jokerdino

App escrito em C ++. As seguintes linhas do link me deixam confuso "<openweek4> PERGUNTA: os ganchos apport funcionam com aplicativos de terceiros? Openweek4: Na verdade, não tenho certeza sobre essa pergunta. Se você olhar para o gancho ubuntuone-client - os bugs são relatados para o Launchpad, mas sobre o projeto ubuntuone. Por isso, é bem possível. No entanto, o apport precisaria se comunicar com o sistema de rastreamento de bugs apropriado. "
Sandeep

O autor diz que pode ser possível que aplicativos de terceiros utilizem o apport para obter relatórios, desde que seja estabelecida uma comunicação entre o apport e o sistema de rastreamento de bugs dos aplicativos do terceiro paty. Como isso pode ser alcançado? Se isso for possível, não preciso aguardar o registro do meu aplicativo no repo ou na barra de lançamento do ubuntu.
Sandeep

Respostas:


2
  1. Parece próximo, mas pode não ser o que você precisa. O Apport altera automaticamente / proc / sys / kernel / core_pattern. Portanto, se isso não puder ser alterado, você estará sem sorte. Por outro lado, o apport está na instalação padrão do Ubuntu agora, então praticamente todo mundo que usa o Ubuntu já possui esse parâmetro alterado. Também não conheço nenhuma maneira de dizer ao apport para manter mais do que a falha mais recente de um aplicativo específico, mas, desde que cada falha seja carregada, isso não é um problema.
  2. Eu me referiria a isso como terceiros.
  3. O Apport suporta executáveis ​​instalados em / opt. Você precisará fornecer um gancho em / opt / path / para / your / app / share / apport / package-hooks.
  4. Você pode definir um banco de dados de falha personalizado no gancho do pacote. Mas se o banco de dados de falhas não funcionar como debbugs ou barra de ativação, você também precisará criar uma implementação personalizada do conector do banco de dados de falhas, o que não parece ser possível sem a instalação de um arquivo python fora de / opt.
  5. O executável precisa ser instalado pelo dpkg, o que significa que você precisa empacotá-lo em um arquivo .deb.
  6. Você precisa criar um pacote de origem para criar um pacote binário, porque os pacotes binários são criados a partir dos pacotes de origem. Você não precisa distribuir o pacote de origem.
  7. O Apport funciona com qualquer coisa empacotada como um arquivo .deb.

Parece que poderia ser uma resposta muito útil, mas deixa várias lacunas na explicação: o que significa "fornecer um gancho"? O que significa "agir como debbugs ou launchpad" significa exatamente? Ponteiros para refs por favor?
BobDoolittle
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.