Eu tenho lido sobre o apport e seu uso por uma semana até agora. Mas não consegui 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
.A aplicação é instalada no caminho /opt/myapplication/bin/MyApp
.
Requisito:
- Quando meu aplicativo falha, quero coletar o despejo principal.
- Em cada falha subsequente, é necessário criar uma nova falha, mas não sobrescrevendo a existente. Algo como renomear automaticamente com o carimbo de data / hora atual, etc, me ajudaria.
- Quando eu instalo meu aplicativo em uma máquina do cliente, meu instalador não deve modificar os parâmetros do sistema como um todo. Digamos, por exemplo, eu não devo alterar o padrão de geração de arquivo principal dele, porque o usuário / cliente pode odiar meu aplicativo, pois eu mudaria seus parâmetros de sistema sem o seu consentimento.
- 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 ótimo utilitário que permite gerações de arquivos principais. Usando /proc/sys/kernel/core_pattern
, 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 prep-ended para ele, etc. Para pacotes não Ubuntu, eu tenho que escrever ganchos para gerar core dumps (relatórios) . Apport depois de coletar o relatório que será enviado.
Coisas que eu não entendo:
- O Apport é o que eu devo estar olhando? Quero dizer, basta o meu propósito? Ou eu deveria estar olhando para outra coisa?
- Em que tipo de pacote meu aplicativo se enquadra? Eu chamo isso de não-Ubuntu? 3ª parte? O que é isso? Eu vejo diferentes terminologias em documentos?
- Como mencionei,
MyApp
é executado a partir de /opt/myapplication/bin/MyApp
, portanto, onde os arquivos principais serão gerados? Dir atual ou /var/crash
? O Apport detecta quedas de trigerred de /opt
? Interpreta isso?
- Pergunta importante: Se eu desenvolvi o aplicativo e se o Apport carrega o relatório para os repositórios do Ubuntu, isso não faz sentido. Então, como posso dizer ao Apport para enviar o relatório para mim?
- Eu recebo este erro:
executable does not belong to a package, ignoring
. Então, o que estou fazendo de errado?
- Para um reconhecimento do meu pacote, preciso torná-lo um pacote de fontes? É obrigatório? Eu só quero criar um pacote binário?
- Eu também vi em algum lugar nos documentos que o Apport reconhece:
- Pacotes do Ubuntu ou
- Aplicativos do Launchpad, mas meu aplicativo não é nenhum desses. Então, como o Apport me ajuda no cenário atual?
- Parece perto, mas pode não ser o que você precisa. O apport muda automaticamente / proc / sys / kernel / core_pattern. Então, se isso não pode ser mudado, você está sem sorte. Por outro lado, o apport está na instalação padrão do Ubuntu agora, então praticamente todo mundo usando o Ubuntu já tem esse parâmetro alterado por ele. Eu também não estou ciente de qualquer maneira de dizer a um parceiro para manter mais do que o mais recente acidente de um aplicativo em particular, mas enquanto cada falha é carregada, isso não é um problema.
- Eu me referiria a ele como terceirizado.
- O Apport suporta executáveis instalados em / opt. Você precisará fornecer um gancho em / opt / path / to / seu / app / share / apport / package-hooks.
- Você pode definir um banco de dados de falhas personalizado no pacote-gancho do seu pacote. Mas se seu banco de dados de falhas não funcionar como debbugs ou launchpad, você também precisará criar uma implementação de conector de banco de dados de falha customizado, que não parece ser possível sem instalar um arquivo python fora de /opt.
- O executável precisa ser instalado pelo dpkg, o que significa que você precisa empacotá-lo em um arquivo .deb.
- Você precisa criar um pacote de origem para criar um pacote binário, porque os pacotes binários são criados a partir de pacotes de origem. Você não precisa distribuir o pacote de código-fonte.
- O Apport trabalha com qualquer coisa empacotada como um arquivo .deb.