Berikan dukungan untuk paket non ubuntu

13

Saya telah membaca tentang apport dan penggunaannya selama seminggu sekarang. Tetapi tidak bisa memahami hal-hal di bawah ini.

Skenario:

Saya telah mengembangkan aplikasi dan mengemasnya. Dan namanya adalah MyApp.deb. Nama paket biner adalah MyApp. Aplikasi diinstal di path /opt/myapplication/bin/MyApp.

Kebutuhan:

  1. Ketika aplikasi saya mogok, saya ingin dapat mengumpulkan dump inti.
  2. Pada setiap crash berikutnya, ia harus membuat crash baru, tetapi tidak menimpa yang sudah ada. Sesuatu seperti penggantian nama otomatis dengan cap waktu saat ini, dll akan membantu saya.
  3. Ketika saya menginstal aplikasi saya pada mesin pelanggan, installer saya tidak boleh memodifikasi parameter lebar sistemnya. Katakan misalnya, saya tidak boleh mengubah pola pembuatan file intinya, karena pengguna / pelanggan mungkin membenci aplikasi saya karena saya akan mengubah parameter sistemnya tanpa persetujuannya.
  4. Saya setuju dengan jalur pembuatan file inti. Direktori saat ini atau/var/crash

Hal-hal yang telah saya jelajahi sampai sekarang:

Apport adalah utilitas bagus yang memungkinkan pembuatan file inti. Menggunakan /proc/sys/kernel/core_patternsaya dapat memformat file inti. Ini memberikan fleksibilitas untuk mengarahkan file inti ke direktori yang telah ditentukan, nama file inti dengan pid, pola jalur file ditambahkan atau prep-ended untuk itu, dll. Untuk paket non Ubuntu, saya harus menulis kait untuk menghasilkan dump inti (laporan) . Apport setelah mengumpulkan laporan yang akan diunggah.

Hal-hal yang saya tidak mengerti:

  1. Apakah Apport yang harus saya perhatikan? Maksud saya, apakah itu cukup untuk tujuan saya? Atau haruskah saya melihat sesuatu yang lain?
  2. Paket apa yang termasuk dalam aplikasi saya? Apakah saya menyebutnya non-ubuntu? Bagian ke-3? apa itu? Saya melihat berbagai terminologi dalam dokumen?
  3. Seperti yang saya sebutkan, MyApplari dari /opt/myapplication/bin/MyApp, jadi di mana file inti akan dihasilkan? Dir atau saat ini /var/crash? Apakah Apport mendeteksi crash yang dipicu dari /opt? Apakah itu menafsirkannya?
  4. Pertanyaan penting: Jika saya telah mengembangkan aplikasi dan jika Apport mengunggah laporan ke repositori Ubuntu, itu tidak masuk akal. Jadi bagaimana saya bisa memberi tahu Apport untuk mengirim laporan kepada saya.
  5. Saya mendapatkan error ini: executable does not belong to a package, ignoring. Jadi apa yang saya lakukan salah?
  6. Agar apport mengenali paket saya, apakah saya harus menjadikannya paket sumber? Apakah ini wajib? Saya hanya ingin membuat paket biner?
  7. Saya juga melihat di suatu tempat dalam dokumen yang diakui Apport:
    1. Paket Ubuntu atau
    2. Aplikasi Launchpad tetapi aplikasi saya tidak termasuk ini. Jadi, bagaimana Apport membantu saya dalam skenario saat ini?
Sandeep
sumber
Salah satu batasan Apport sekarang - Ini harus berupa paket di repositori ubuntu atau setidaknya proyek di Launchpad. Apakah yang terakhir merupakan pilihan untuk Anda?
jokerdino
Terima kasih atas balasan tepat waktu dan menjawab dengan jelas untuk pertanyaan panjang saya. BTW, saya lupa menyebutkan di posting saya sebelumnya, bahwa aplikasi saya adalah milik. Kami berencana meng-host aplikasi kami di repositori ubuntu. Tapi itu mungkin beberapa bulan dari sekarang. Sampai saat itu saya harus mengelola file inti secara manual.
Sandeep
Bahasa apa yang tertulis dalam aplikasi? Juga checkout kelas yang dilakukan untuk menulis kait paket Apport .
jokerdino
Aplikasi ditulis dalam C ++. Baris-baris berikut dari tautan membuat saya bingung "<openweek4> PERTANYAAN: akankah kaitan kait berfungsi dengan aplikasi pihak ke-3? Openweek4: Saya sebenarnya benar-benar tidak yakin tentang pertanyaan itu. ke Launchpad tetapi tentang proyek ubuntuone. Jadi, itu sangat mungkin dilakukan. Namun, apport harus dapat berkomunikasi dengan sistem pelacakan bug yang sesuai. "
Sandeep
Penulis mengatakan, mungkin saja aplikasi pihak ke-3 memanfaatkan apportasi untuk mendapatkan laporan selama komunikasi dibuat antara apport dan sistem pelacakan kutu aplikasi ketiga. Bagaimana ini bisa dicapai? Jika ini dapat dicapai, maka saya tidak perlu menunggu aplikasi saya untuk terdaftar dengan repo atau launchpad ubuntu.
Sandeep

Jawaban:

2
  1. Itu terlihat dekat, tetapi mungkin bukan yang Anda butuhkan. Apport secara otomatis mengubah / proc / sys / kernel / core_pattern. Jadi jika itu tidak bisa diubah, Anda kurang beruntung. Di sisi lain, apport berada dalam instalasi default Ubuntu sekarang, jadi praktis semua orang yang menggunakan Ubuntu sudah memiliki parameter yang diubah olehnya. Saya juga tidak mengetahui cara untuk memberitahu agar menyimpan lebih dari kerusakan terbaru dari aplikasi tertentu, tetapi selama setiap kerusakan diunggah, itu bukan masalah.
  2. Saya akan menyebutnya sebagai pihak ketiga.
  3. Apport mendukung executable yang diinstal di / opt. Anda perlu menyediakan hook di / opt / path / ke / aplikasi / share / share / apport / hooks Anda.
  4. Anda dapat mengatur basis data kerusakan khusus di kait paket untuk paket Anda. Tetapi jika database kerusakan Anda tidak bertindak seperti debbugs atau launchpad, Anda juga perlu membuat implementasi konektor database kerusakan khusus, yang sepertinya tidak dapat dilakukan tanpa menginstal file python di luar / opt.
  5. File executable perlu diinstal oleh dpkg, yang berarti Anda perlu mengemasnya dalam file deb.
  6. Anda harus membuat paket sumber untuk membuat paket biner, karena paket biner dibuat dari paket sumber. Anda tidak perlu mendistribusikan paket sumber.
  7. Apport berfungsi dengan apa pun yang dikemas sebagai file deb.
Berhenti Membahayakan Komunitas
sumber
Sepertinya ini bisa menjadi jawaban yang sangat berguna, tetapi meninggalkan beberapa celah dalam penjelasannya: Apa yang dimaksud dengan "menyediakan kail"? Apa arti "bertindak seperti debbugs atau launchpad"? Pointer ke referensi tolong?
BobDoolittle