Debian paketinin yukarı akış kaynak arşivi verildiğinde iki paket nasıl oluşturması gerekir?


14

PPA'm için bir şey paketliyorum. Memba kaynağı .tar.gzMakefile tabanlı bir arşivdir.

Bu paket mimariden bağımsız önemli miktarda veri içerdiğinden, yapı komut dosyalarının iki paket oluşturması akıllıca olacaktır:

  • paket
  • paket -verileri

Bunu nasıl ayarlayabilirim? Debian dosyamı controliki paket oluşturmak için düzenledim , ancak doğru dosyaları doğru pakete nasıl alacağımı bilmiyorum.

Veri dosyaları şu anda Makefile aracılığıyla yüklendiğinden, burada biraz kayboldum.

Yanıtlar:


14

Burası her zaman eksik belgeleri bulduğum bir yer. Bunun nasıl çalıştığını hemen hemen diğer paketlerde nasıl yapıldığına bakarak öğrendim. Debian ambalajındaki çoğu şeyde olduğu gibi, bunu yapmanın birkaç yolu vardır. debian/package.installDosyaları kullanmanın en basit yolunu bulmak . İşte üzerinde çalıştığım bir paket örneği, hayal gücü (bzr şubesi) .

İlk olarak, paketi oluşturmamız gerekiyor debian/control. Şimdi üç stanza var. Kaynak paket için bir ve her ikili paket için bir. Foo-veri paketinin olması gerektiğini unutmayın Architecture: all. Ayrıca hayal gücünün bağlı olduğuna dikkat edin imagination-common (= ${source:Version}).

Sonra bir debian/imagination.installdosya oluşturuyoruz . Bu, hayal gücü paketinde sonlandırmak istediğimiz belirli dosyaları veya yolları içerir. Bu paket için mimariye bağımlı tüm dosyaları istiyoruz. Masaüstü dosyası, kendi Exec:satırında çağırdığı ikili dosyayla söylemesi gerektiği için eklenir .

usr/bin/
usr/lib/
/usr/share/applications/imagination.desktop

Bir debian/imagination-common.installdosya oluşturmamız gerekiyor . Bu, mimariden bağımsız tüm dosyaları, görüntüleri, çevirileri, dokümanları ve benzerlerini içerecektir.

/usr/share/doc/
/usr/share/icons/
/usr/share/imagination/
/usr/share/locale/

man dh_install burada gerçekten neler olduğunu açıklar:

belki birden fazla ikili paket oluşturan büyük bir paketiniz var. Hepsini debian / tmp içine yüklemek için akış yukarı Makefile kullanabilirsiniz ve sonra oradan dizinleri ve dosyaları uygun paket oluşturma dizinlerine kopyalamak için dh_install kullanabilirsiniz.

"Uygun paket derleme dizinleri" ile kastedilen, derleme işleminin sonunda, sonuçta ortaya foo.debçıkacak her şeyin içinde bulunacağıdır src/debian/foo. Sonuçlanacak dosyalar foo-data.debburada bulunur src/debian/foo-data. Gibi debian/rulesaslında sadece bir Makefile, sen aynı sonucu almanın böylece başka yollar hayal başlayabilirsiniz.


Çok teşekkür ederim! Çok net bir açıklama ve mükemmel çalışıyor.
Nathan Osman
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.