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:
- 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.
- 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.
- 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.
- 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:
- 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?
- Ứ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?
- Như tôi đã đề cập,
MyApp
chạ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ố/opt
không? Nó giải thích nó? - 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.
- 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? - Để 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?
- Tôi cũng thấy đâu đó trong các tài liệu mà Apport nhận ra:
- Gói Ubuntu hoặc
- 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