Hỗ trợ Apport cho các gói không phải của Ubuntu


13

Tôi đã đọc về apport và cách sử dụng của nó trong một tuần nay. Nhưng không thể hiểu những điều dưới đây.

Kịch bản:

Tôi đã phát triển một ứng dụng và đóng gói nó. Và tên của nó là MyApp.deb. Tên gói nhị phân là MyApp. Ứng dụng được cài đặt trong đường dẫn /opt/myapplication/bin/MyApp.

Yêu cầu:

  1. Khi ứng dụng của tôi gặp sự cố, tôi muốn có thể thu thập kết xuất lõi.
  2. Trên mỗi sự cố tiếp theo, nó phải tạo ra một sự cố mới, nhưng không ghi đè lên sự cố hiện có. Một cái gì đó như tự động đổi tên với dấu thời gian hiện tại, vv sẽ giúp tôi.
  3. Khi tôi cài đặt ứng dụng của mình trên máy khách hàng, trình cài đặt của tôi không được sửa đổi các tham số trên toàn hệ thống của anh ấy. Ví dụ, tôi không được thay đổi kiểu tạo tệp lõi của anh ấy, vì người dùng / khách hàng có thể ghét ứng dụng của tôi vì tôi sẽ thay đổi các tham số hệ thống của anh ấy mà không có sự đồng ý của anh ấy.
  4. Tôi ổn với đường dẫn tạo tập tin lõi. Thư mục hiện tại hoặc/var/crash

Những điều mà tôi đã khám phá cho đến bây giờ:

Apport là một tiện ích tốt cho phép tạo các tệp lõi. Sử dụng/proc/sys/kernel/core_pattern tôi có thể định dạng các tập tin cốt lõi. Điều này cung cấp tính linh hoạt để chuyển hướng các tệp lõi đến một thư mục được xác định trước, đặt tên các tệp lõi với pid, mẫu đường dẫn tệp được nối thêm hoặc kết thúc trước với nó, v.v. . Apport sau khi thu thập báo cáo nó sẽ tải lên.

Những điều mà tôi không hiểu:

  1. Apport có phải là cái tôi phải nhìn không ?? Ý tôi là nó có đủ mục đích của tôi không? Hay tôi nên nhìn vào cái gì khác?
  2. Ứng dụng của tôi thuộc loại gói nào? Tôi có gọi nó là không phải Ubuntu không? Phần 3? nó là gì? Tôi thấy các thuật ngữ khác nhau trong các tài liệu?
  3. Như tôi đã đề cập, MyAppchạy từ đâu /opt/myapplication/bin/MyApp, vậy các tệp lõi sẽ được tạo ở đâu? Hiện tại dir hay /var/crash? Apport có phát hiện ra sự cố /optkhông? Nó giải thích nó?
  4. Câu hỏi quan trọng: Nếu tôi đã phát triển ứng dụng và nếu Apport tải báo cáo lên kho lưu trữ Ubuntu, điều đó không có nghĩa gì. Vì vậy, làm thế nào tôi có thể nói với Apport để gửi báo cáo cho tôi.
  5. Tôi nhận được lỗi này : executable does not belong to a package, ignoring. Vậy tôi đang làm gì sai?
  6. Để apport nhận ra gói của tôi, tôi có cần biến nó thành gói nguồn không? Có bắt buộc không? Tôi chỉ muốn tạo một gói nhị phân?
  7. Tôi cũng thấy đâu đó trong các tài liệu mà Apport nhận ra:
    1. Gói Ubuntu hoặc
    2. Các ứng dụng Launchpad nhưng ứng dụng của tôi không phải là những ứng dụng này. Vậy Apport giúp tôi như thế nào trong kịch bản hiện tại?

Một trong những hạn chế của Apport ngay bây giờ - Nó phải là một gói trong kho lưu trữ Ubuntu hoặc ít nhất là một dự án trên Launchpad. Là cái sau là một lựa chọn cho bạn?
jokerdino

Cảm ơn đã trả lời kịp thời và trả lời rõ ràng cho câu hỏi dài của tôi. BTW, tôi đã bỏ lỡ đề cập trong bài viết trước của tôi, rằng ứng dụng của tôi là độc quyền. Chúng tôi đang lên kế hoạch lưu trữ ứng dụng của chúng tôi trên kho ubfox. Nhưng đó có thể là vài tháng kể từ bây giờ. Cho đến khi tôi phải quản lý các tập tin cốt lõi bằng tay.
Sandeep

Ứng dụng được viết bằng ngôn ngữ nào? Ngoài ra kiểm tra một lớp được tiến hành để viết móc gói Apport .
jokerdino

Ứng dụng được viết bằng C ++. Các dòng sau từ liên kết khiến tôi bối rối "<openweek4> CÂU HỎI: liệu các apport hook có hoạt động với các ứng dụng của bên thứ 3 không? với Launchpad nhưng về dự án ubfoxone. Vì vậy, rất có thể là có thể. Tuy nhiên, apport sẽ phải có khả năng giao tiếp với hệ thống theo dõi lỗi thích hợp. "
Sandeep

Tác giả cho biết, các ứng dụng của bên thứ 3 có thể sử dụng apport để nhận báo cáo miễn là giao tiếp được thiết lập giữa apport và hệ thống theo dõi lỗi của ứng dụng paty thứ 3. Làm thế nào điều này có thể đạt được? Nếu điều này có thể đạt được, thì tôi không cần phải đợi ứng dụng của mình được đăng ký với repo ubfox hoặc launchpad.
Sandeep

Câu trả lời:


2
  1. Nó trông gần, nhưng có thể không phải là những gì bạn cần. Apport tự động thay đổi / Proc / sys / kernel / core_potype. Vì vậy, nếu điều đó không thể thay đổi, bạn sẽ gặp khá nhiều may mắn. Mặt khác, apport hiện đang trong cài đặt Ubuntu mặc định, vì vậy thực tế tất cả mọi người sử dụng Ubuntu đều đã thay đổi tham số đó. Tôi cũng không biết bất kỳ cách nào để nói với apport giữ nhiều hơn sự cố gần đây nhất từ ​​một ứng dụng cụ thể, nhưng miễn là mỗi sự cố được tải lên, đó không phải là vấn đề.
  2. Tôi muốn gọi nó là bên thứ ba.
  3. Apport hỗ trợ các tệp thực thi được cài đặt trong / opt. Bạn sẽ cần cung cấp một hook trong / opt / path / to / your / app / share / apport / pack-hook.
  4. Bạn có thể đặt cơ sở dữ liệu sự cố tùy chỉnh trong hook-hook cho gói của mình. Nhưng nếu cơ sở dữ liệu sự cố của bạn không hoạt động như debbugs hoặc launchpad, bạn cũng sẽ cần tạo một triển khai trình kết nối cơ sở dữ liệu sự cố tùy chỉnh, có vẻ như không thể thực hiện được mà không cần cài đặt tệp python bên ngoài / opt.
  5. Việc thực thi cần được cài đặt bởi dpkg, có nghĩa là bạn cần gói nó trong tệp .deb.
  6. Bạn phải tạo một gói nguồn để tạo gói nhị phân, vì các gói nhị phân được tạo từ các gói nguồn. Bạn không cần phân phối gói nguồn.
  7. Apport hoạt động với mọi thứ được đóng gói dưới dạng tệp .deb.

Điều này có vẻ như nó có thể là một câu trả lời rất hữu ích, nhưng nó để lại một số khoảng trống trong lời giải thích: "cung cấp một cái móc" đòi hỏi gì? Chính xác thì "hành động như debbugs hay launchpad" nghĩa là gì? Con trỏ để giới thiệu xin vui lòng?
BobDoolittle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.