ฉันได้อ่านเกี่ยวกับ apport และการใช้งานเป็นเวลาหนึ่งสัปดาห์แล้ว แต่ไม่เข้าใจสิ่งต่าง ๆ ด้านล่าง
สถานการณ์:
ฉันได้พัฒนาแอปพลิเคชันและจัดทำมัน MyApp.deb
และชื่อของมันคือ ชื่อแพคเกจไบนารีแอพลิเคชันได้โดยเริ่มต้นมีการติดตั้งในเส้นทางMyApp
/opt/myapplication/bin/MyApp
ต้องการ:
- เมื่อแอปพลิเคชันของฉันขัดข้องฉันต้องการรวบรวมคอร์ดัมพ์
- ในแต่ละความผิดพลาดที่ตามมาจะต้องสร้างความผิดพลาดใหม่ แต่ไม่ได้เขียนทับความผิดพลาดที่มีอยู่ บางอย่างเช่นการเปลี่ยนชื่ออัตโนมัติพร้อมการประทับเวลาปัจจุบัน ฯลฯ จะช่วยฉันได้
- เมื่อฉันติดตั้งแอปพลิเคชันของฉันบนเครื่องลูกค้าโปรแกรมติดตั้งของฉันจะต้องไม่แก้ไขพารามิเตอร์ทั้งระบบของเขา พูดเช่นฉันจะต้องไม่เปลี่ยนรูปแบบการสร้างไฟล์หลักของเขาเพราะผู้ใช้ / ลูกค้าอาจเกลียดแอปพลิเคชันของฉันเพราะฉันจะเปลี่ยนพารามิเตอร์ระบบของเขาโดยไม่ได้รับความยินยอมจากเขา
- ฉันตกลงกับเส้นทางของการสร้างไฟล์หลัก อาจเป็นไดเรกทอรีปัจจุบันหรือ
/var/crash
สิ่งที่ฉันได้สำรวจมาจนถึงตอนนี้:
Apport เป็นยูทิลิตี้ที่ดีซึ่งทำให้สามารถสร้างไฟล์หลักได้ ใช้/proc/sys/kernel/core_pattern
ฉันสามารถจัดรูปแบบไฟล์หลัก สิ่งนี้ให้ความยืดหยุ่นในการเปลี่ยนเส้นทางไฟล์หลักไปยังไดเรกทอรีที่กำหนดไว้ล่วงหน้าชื่อไฟล์แกนที่มี pid, รูปแบบเส้นทางของไฟล์ที่ผนวกเข้าหรือจบลงไปเป็นต้นสำหรับแพ็คเกจที่ไม่ใช่ Ubuntu ฉันต้องเขียน hooks เพื่อสร้าง core ทิ้ง (รายงาน) . เชื่อมโยงหลังจากรวบรวมรายงานที่จะอัปโหลด
สิ่งที่ฉันไม่เข้าใจ:
- เป็น Apport ที่ฉันต้องดูใช่ไหม? ฉันหมายความว่ามันเพียงพอต่อความต้องการของฉันหรือไม่? หรือฉันควรจะมองอย่างอื่น
- แอปพลิเคชันของฉันอยู่ในประเภทใด ฉันเรียกมันว่าไม่ใช่อูบุนตูหรือไม่? ส่วนที่ 3 มันคืออะไร? ฉันเห็นคำศัพท์ต่าง ๆ ในเอกสารหรือไม่
- ดังที่ฉันได้กล่าวแล้วให้
MyApp
เรียกใช้จาก/opt/myapplication/bin/MyApp
ดังนั้นไฟล์หลักจะถูกสร้างขึ้นที่ใด ปัจจุบัน dir หรือ/var/crash
? Apport ตรวจพบการล่มของ trigerred/opt
หรือไม่? มันตีความมันได้หรือไม่ - คำถามสำคัญ: ถ้าฉันพัฒนาแอพพลิเคชั่นแล้วและถ้า Apport อัปโหลดรายงานไปยังที่เก็บ Ubuntu มันไม่สมเหตุสมผล ดังนั้นฉันจะบอก Apport ให้ส่งรายงานให้ฉันได้อย่างไร
- ฉันได้รับข้อผิดพลาดนี้:
executable does not belong to a package, ignoring
. แล้วฉันกำลังทำอะไรผิด - เพื่อให้ apport รู้จักแพ็คเกจของฉันฉันต้องทำให้มันเป็นแพ็กเกจต้นทางหรือไม่ จำเป็นหรือไม่ ฉันต้องการสร้างแพ็คเกจไบนารีหรือไม่
- ฉันยังเห็นบางแห่งในเอกสารที่ Apport รู้จัก:
- แพ็คเกจ Ubuntu หรือ
- แอปพลิเคชัน Launchpad แต่แอปพลิเคชันของฉันไม่ได้อยู่ในรายการเหล่านี้ ดังนั้น Apport ช่วยฉันในสถานการณ์ปัจจุบันอย่างไร
หนึ่งในข้อ จำกัด ของ Apport ในขณะนี้ - ต้องเป็นแพคเกจในที่เก็บ Ubuntu หรืออย่างน้อยโครงการบน Launchpad ตัวเลือกหลังสำหรับคุณหรือไม่
—
jokerdino
ขอขอบคุณสำหรับการตอบกลับอย่างทันท่วงทีและตอบคำถามที่มีความยาวมาก BTW ฉันไม่ได้พูดถึงในโพสต์ก่อนหน้าของฉันว่าใบสมัครของฉันเป็นกรรมสิทธิ์ เราวางแผนที่จะโฮสต์แอปพลิเคชันของเราบนที่เก็บ Ubuntu แต่นั่นอาจไม่กี่เดือนนับจากนี้ จนถึงตอนนี้ฉันต้องจัดการไฟล์หลักด้วยตนเอง
—
Sandeep
แอปพลิเคชันเขียนด้วยภาษาใด นอกจากนี้ยังชำระเงินระดับดำเนินการสำหรับการเขียน Apport แพคเกจตะขอ
—
jokerdino
แอปเขียนใน C ++ บรรทัดต่อไปนี้จากลิงก์ทำให้ฉันสับสน "<openweek4> คำถาม: apport hooks จะทำงานกับแอปพลิเคชันบุคคลที่สามหรือไม่ openweek4: จริงๆแล้วฉันไม่แน่ใจเกี่ยวกับคำถามนั้นถ้าคุณดูที่ ubuntuone-client hook - รายงานข้อผิดพลาด เพื่อ Launchpad แต่เกี่ยวกับโครงการ ubuntuone ดังนั้นมันอาจเป็นไปได้มากอย่างไรก็ตาม apport จะต้องสามารถสื่อสารกับระบบติดตามบั๊กที่เหมาะสมได้ "
—
Sandeep
ผู้เขียนกล่าวว่าอาจเป็นไปได้ที่แอปพลิเคชันบุคคลที่สามจะใช้ประโยชน์จาก apport เพื่อรับรายงานตราบใดที่มีการสื่อสารระหว่าง apport และระบบติดตามบั๊กของแอปพลิเคชันที่ 3 สิ่งนี้จะสำเร็จได้อย่างไร หากสามารถทำได้ฉันไม่จำเป็นต้องรอให้แอปพลิเคชันของฉันลงทะเบียนด้วย ubuntu repo หรือ launchpad
—
Sandeep