Apport ve kullanımı hakkında bir haftadır okuyorum. Ama aşağıdaki şeyleri anlayamadım.
Senaryo:
Bir uygulama geliştirdim ve paketledim. Ve adı MyApp.deb
. İkili paket adıdır MyApp
. Uygulama yola yüklenir /opt/myapplication/bin/MyApp
.
Gereksinimi:
- Uygulamam çöktüğünde, çekirdek dökümü toplamak istiyorum.
- Sonraki her kilitlenmede, yeni bir kilitlenme oluşturması gerekir, ancak mevcut kilitlenmenin üzerine yazılmaz. Geçerli zaman damgası ile otomatik yeniden adlandırma gibi bir şey, bana yardımcı olacaktır.
- Uygulamamı bir müşteri makinesine yüklediğimde, yükleyicimin sistem genelindeki parametrelerini değiştirmemesi gerekir. Örneğin, çekirdek dosya oluşturma modelini değiştirmemeliyim, çünkü kullanıcı / müşteri rızası olmadan sistem parametrelerini değiştireceğim için uygulamamdan nefret edebilir.
- Çekirdek dosya oluşturma yolu ile iyiyim. Geçerli dizin veya
/var/crash
Şimdiye kadar keşfettiğim şeyler:
Apport, çekirdek dosya nesillerine olanak sağlayan güzel bir yardımcı programdır. Kullanarak /proc/sys/kernel/core_pattern
çekirdek dosyaları biçimlendirebilirim. Bu, çekirdek dosyaları önceden tanımlanmış bir dizine yeniden yönlendirme esnekliği sağlar, çekirdek dosyaları pid ile adlandırır, dosya yolu deseni eklenir veya hazırlanır, vb. Ubuntu olmayan paketler için çekirdek dökümleri (raporlar) oluşturmak için kancalar yazmam gerekir . Yükleyecek raporu topladıktan sonra apport.
Anlamadığım şeyler:
- Apport ben bakmak gerekir mi? Yani amacım yeterli mi? Yoksa başka bir şeye mi bakmalıyım?
- Başvurum ne tür bir pakete giriyor? Bunu ubuntu olmayan olarak mı adlandırırım? 3. bölüm mü? bu ne? Belgelerde farklı terminolojiler mi görüyorum?
- Bahsettiğim gibi,
MyApp
çalışır/opt/myapplication/bin/MyApp
, yani çekirdek dosyalar nerede üretilecek? Geçerli dir veya/var/crash
? Apport tetiklenen çökmeleri algılıyor mu/opt
? Yorum mu yapıyor? - Önemli soru: Uygulamayı geliştirdiysem ve Apport raporu Ubuntu depolarına yüklerse mantıklı değil. Peki Apport'a raporu bana göndermesini nasıl söyleyebilirim?
- Bu hatayı alıyorum:
executable does not belong to a package, ignoring
. Peki ne yanlış yapıyorum? - Apport'un paketimi tanıması için onu bir kaynak paket yapmam gerekir mi? Zorunlu mu? Ben sadece bir ikili paket oluşturmak istiyorum?
- Ayrıca Apport'un tanıdığı belgelerde bir yerde gördüm:
- Ubuntu paketleri veya
- Launchpad uygulamaları ancak uygulamam bunlardan hiçbiri değil. Peki Apport şu anki senaryoda bana nasıl yardımcı oluyor?
Apport'un şu anki sınırlamalarından biri - Ubuntu deposunda bir paket veya en azından Launchpad'de bir proje olmalı. İkincisi sizin için bir seçenek mi?
—
jokerdino
Uzun süren sorum için zamanında cevap ve net cevap verdiğiniz için teşekkürler. BTW, önceki yazımda başvurumun tescilli olduğunu belirtmeyi kaçırdım. Uygulamamızı ubuntu depoları üzerinde barındırmayı planlıyoruz. Ama bu birkaç ay sonra olabilir. O zamana kadar çekirdek dosyaları elle yönetmem gerekiyor.
—
Sandeep
Uygulama hangi dilde yazılıyor? Ayrıca Apport paket kancaları yazmak için yürütülen bir sınıfı kontrol edin .
—
jokerdino
C ++ ile yazılmış uygulama. SORU: aşağıdaki satırlar beni karışık bırakıyor "<openweek4> SORU: apport kancalar 3. parti uygulamalar ile çalışacak mı? Openweek4: Aslında bu soru hakkında gerçekten emin değilim. ancak ubuntuone projesi hakkında. Bu çok iyi olabilir. Ancak, apportun uygun hata izleme sistemiyle iletişim kurabilmesi gerekirdi. "
—
Sandeep
Yazar, 3. taraf uygulamalarının, apport ve 3. paty uygulamalarının hata izleme sistemi arasında bir iletişim kurulduğu sürece raporları almak için apport'u kullanmasının mümkün olabileceğini söylüyor. Bu nasıl başarılabilir? Bu başarılabilirse, başvurumun ubuntu repo veya launchpad'e kaydolmasını beklememe gerek yok.
—
Sandeep