Ubuntu olmayan paketler için apport desteği


13

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:

  1. Uygulamam çöktüğünde, çekirdek dökümü toplamak istiyorum.
  2. 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.
  3. 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.
  4. Ç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:

  1. Apport ben bakmak gerekir mi? Yani amacım yeterli mi? Yoksa başka bir şeye mi bakmalıyım?
  2. 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?
  3. 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?
  4. Ö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?
  5. Bu hatayı alıyorum: executable does not belong to a package, ignoring. Peki ne yanlış yapıyorum?
  6. Apport'un paketimi tanıması için onu bir kaynak paket yapmam gerekir mi? Zorunlu mu? Ben sadece bir ikili paket oluşturmak istiyorum?
  7. Ayrıca Apport'un tanıdığı belgelerde bir yerde gördüm:
    1. Ubuntu paketleri veya
    2. 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


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

Yanıtlar:


2
  1. Yakından görünüyor, ancak ihtiyacınız olan şey olmayabilir. Apport / proc / sys / kernel / core_pattern öğesini otomatik olarak değiştirir. Yani bu değiştirilemezse, şansınız çok az. Öte yandan, apport varsayılan Ubuntu kurulumundadır, bu yüzden pratikte Ubuntu kullanan herkesin zaten bu parametresi değiştirmiştir. Ayrıca, belirli bir uygulamadaki en son kilitlenmeden daha fazlasını saklamak için apport'a söylemenin herhangi bir yolunun farkında değilim, ancak her kilitlenme yüklendiği sürece bu bir sorun değil.
  2. Üçüncü taraf olarak adlandırırdım.
  3. Apport, / opt içine yüklenmiş yürütülebilir dosyaları destekler. / App / share / apport / package-hooks / / opt / path / dizinine bir kanca sağlamanız gerekir.
  4. Paketinizin paket kancasında özel bir kilitlenme veritabanı ayarlayabilirsiniz. Ancak, çökme veritabanınız hata ayıklama veya başlatma alanı gibi davranmıyorsa, / opt dışında bir python dosyası yüklenmeden yapılabilecek gibi görünmeyen özel bir çökme veritabanı bağlayıcı uygulaması da oluşturmanız gerekir.
  5. Yürütülebilir dosyanın dpkg tarafından yüklenmesi gerekir, yani .deb dosyasında paketlemeniz gerekir.
  6. İkili paketler oluşturmak için bir kaynak paket oluşturmanız gerekir, çünkü ikili paketler kaynak paketlerden oluşturulur. Kaynak paketi dağıtmanız gerekmez.
  7. Apport, .deb dosyası olarak paketlenmiş herhangi bir şeyle çalışır.

Bu çok yararlı bir cevap olabilir gibi görünüyor, ancak açıklamada birkaç boşluk bırakıyor: "Kanca sağlama" neyi gerektirir? "Hata ayıklama veya fırlatma rampası gibi davran" tam olarak ne anlama geliyor? Refs için işaretçiler lütfen?
BobDoolittle
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.