비 우분투 패키지에 대한 Apport 지원


13

나는 지금까지 일주일 동안 apport와 사용법에 대해 읽었습니다. 그러나 아래 사항을 이해할 수 없었습니다.

대본:

응용 프로그램을 개발하고 패키지했습니다. 그리고 그 이름은 MyApp.deb입니다. 이진 패키지 이름은 MyApp. 응용 프로그램은 경로에 설치됩니다 /opt/myapplication/bin/MyApp.

요구 사항 :

  1. 내 응용 프로그램이 중단되면 코어 덤프를 수집 할 수 있기를 원합니다.
  2. 이후의 충돌마다 새로운 충돌을 만들어야하지만 기존 충돌을 덮어 쓰지 않아야합니다. 현재 타임 스탬프로 자동 이름 바꾸기와 같은 것이 도움이 될 것입니다.
  3. 고객 컴퓨터에 응용 프로그램을 설치할 때 설치 관리자가 시스템 전체 매개 변수를 수정해서는 안됩니다. 예를 들어, 사용자 / 고객이 동의없이 시스템 매개 변수를 변경하기 때문에 사용자 / 고객이 내 응용 프로그램을 싫어할 수 있기 때문에 핵심 파일 생성 패턴을 변경해서는 안됩니다.
  4. 코어 파일 생성 경로에 문제가 없습니다. 현재 디렉토리 또는/var/crash

내가 지금까지 살펴본 것들 :

Apport는 핵심 파일 생성을 가능하게하는 유용한 유틸리티입니다. 사용 /proc/sys/kernel/core_pattern나는 코어 파일을 포맷 할 수 있습니다. 이것은 코어 파일을 사전 정의 된 디렉토리로 리디렉션하고, pid를 가진 코어 파일 이름 지정, 파일 경로 패턴이 추가되거나 미리 준비된 등의 유연성을 제공합니다. 우분투 패키지가 아닌 경우 코어 덤프 (보고서)를 생성하기 위해 후크를 작성해야합니다. . 업로드 할 보고서를 수집 한 후 분류하십시오.

내가 이해하지 못하는 것들 :

  1. Apport는 내가보고 있어야하는 것입니까? 내 목적으로 충분합니까? 아니면 다른 것을보고 있어야합니까?
  2. 어떤 종류의 패키지가 적용됩니까? 비 우분투라고 부르나요? 세 번째 부분? 뭐야? 문서에 다른 용어가 있습니까?
  3. 앞에서 언급했듯이에서 MyApp실행 /opt/myapplication/bin/MyApp되므로 코어 파일은 어디에서 생성됩니까? 현재 디렉토리 또는 /var/crash? Apport는에서 분류 된 충돌을 감지합니까 /opt? 해석합니까?
  4. 중요한 질문 : 응용 프로그램을 개발했고 Apport가 보고서를 Ubuntu 리포지토리에 업로드하면 의미가 없습니다. 어떻게 Apport에게 보고서를 보내라고 말할 수 있습니까?
  5. 이 오류가 발생합니다 : executable does not belong to a package, ignoring. 그래서 내가 뭘 잘못하고 있니?
  6. apport가 내 패키지를 인식하려면 소스 패키지로 만들어야합니까? 필수입니까? 이진 패키지를 만들고 싶습니까?
  7. 또한 Apport가 인정하는 문서의 어딘가를 보았습니다.
    1. 우분투 패키지 또는
    2. 런치 패드 애플리케이션이지만 내 애플리케이션은이 둘 중 하나가 아닙니다. 그렇다면 현재 시나리오에서 Apport가 어떻게 도움이됩니까?

현재 Apport의 한계 중 하나-우분투 저장소의 패키지이거나 적어도 Launchpad의 프로젝트이어야합니다. 후자는 당신을위한 옵션입니까?
jokerdino

긴 답변에 대해 명확하게 답변하고 적시에 답변 해 주셔서 감사합니다. BTW, 나는 이전 게시물에서 내 응용 프로그램이 독점적이라고 언급하지 않았습니다. 우분투 리포지토리에서 응용 프로그램을 호스팅 할 계획입니다. 그러나 지금부터 몇 개월이 걸릴 수 있습니다. 그때까지 핵심 파일을 수동으로 관리해야합니다.
Sandeep

응용 프로그램은 어떤 언어로 작성됩니까? 또한 Apport 패키지 후크 작성을 위해 수행 된 클래스를 확인하십시오 .
jokerdino

C ++로 작성된 앱. 링크에서 다음 줄은 혼란스러워 "<openweek4> 질문 : 제 3 자 응용 프로그램에서 후크가 작동합니까? openweek4 : 실제로 그 질문에 대해 확실하지 않습니다. "upadtuone 프로젝트에 관한 것이지만 가능할 수도 있지만 apport는 적절한 버그 추적 시스템과 통신 할 수 있어야합니다."
Sandeep

저자는 apport와 타사 응용 프로그램의 버그 추적 시스템간에 통신이 설정되어있는 한 타사 응용 프로그램이 apport를 사용하여 보고서를 가져올 수 있다고 말합니다. 이것이 어떻게 달성 될 수 있습니까? 이것이 가능하다면 응용 프로그램이 우분투 저장소 또는 런치 패드에 등록되기를 기다릴 필요가 없습니다.
Sandeep

답변:


2
  1. 가까이 보이지만 필요한 것은 아닐 수도 있습니다. Apport는 / proc / sys / kernel / core_pattern을 자동으로 변경합니다. 따라서 변경할 수 없다면 운이 거의 없습니다. 반면, apport는 현재 기본 Ubuntu 설치이므로 실제로 Ubuntu를 사용하는 모든 사람은 이미 해당 매개 변수를 변경했습니다. 또한 apport가 특정 앱에서 가장 최근에 발생한 크래시 이상을 유지하도록 지시하는 방법을 알지 못하지만 각 크래시가 업로드되는 한 문제가 아닙니다.
  2. 나는 그것을 제삼자라고 부릅니다.
  3. Apport는 / opt에 설치된 실행 파일을 지원합니다. / opt / path / to / your / app / share / apport / package-hooks에 후크를 제공해야합니다.
  4. 패키지의 패키지 후크에서 사용자 정의 충돌 데이터베이스를 설정할 수 있습니다. 그러나 충돌 데이터베이스가 debbug 또는 런치 패드처럼 작동하지 않으면 / opt 외부에 python 파일을 설치하지 않고는 수행 할 수없는 사용자 정의 충돌 데이터베이스 커넥터 구현도 작성해야합니다.
  5. 실행 파일은 dpkg로 설치해야하므로 .deb 파일로 패키지해야합니다.
  6. 이진 패키지는 소스 패키지에서 생성되므로 이진 패키지를 만들려면 소스 패키지를 만들어야합니다. 소스 패키지를 배포 할 필요가 없습니다.
  7. Apport는 .deb 파일로 패키지 된 모든 항목에서 작동합니다.

이것은 매우 유용한 답변 인 것처럼 보이지만 설명에 몇 가지 차이가 ​​있습니다. "후크 제공"이란 무엇입니까? "디버그 또는 런치 패드처럼 작동"이란 정확히 무엇을 의미합니까? 심판을 가리키는 포인터?
BobDoolittle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.