En basit Debian Ambalaj Kılavuzu nedir?


150

Ubuntu wiki'ye gittim ama kafam karıştı, çok fazla yol vardı. Lütfen bana Debian ambalajı için kolay bir rehber verin.


3
Kendi kullanımınız için, belirli bir bilgisayarda veya başkalarının kullanması için paketler oluşturmak ister misiniz?
andol

1
Paketlemek istediğiniz yazılım hangi dili?
Umang

4
Bende de aynı sorun var. Eğitimlerin ve rehberlerin çoğu, "upstream tarball'ı yakalayın" ile başlar. Bu noktadan itibaren kaybolduk. Dağıtmak istediğimiz basit bir şey var, yukarı yöndeki tarball yok, kaynak kodu yok. bu sadece bir savaş dosyası, bazı komut dosyaları ve bazı jar dosyaları. Upstream tar topu neyle ilgili ve biri kullanmayan, kapsamlı olan (örneğin, kullanıcıların sorunları ile ilgilenen) bir rehber görmüş olan biri
John Little

2
Ben giderim biri ben StackOverflow'daki fazla gönderi.

Eğer "sanal paketler" (birlikte grup bağımlılıkları) oluşturmak istiyorsanız, equivs-build'e
Rolf

Yanıtlar:


103

Bu , temel bir .debdosya oluşturmak için iyi bir NASIL belgesidir . .debKişisel kullanım için dosyalar oluşturmak için uygundur ancak paketin Debian / Ubuntu'da yer almasını istiyorsanız yeterince sıkı değildir - bunun için Debian Yeni Bakım Kılavuzu ve / veya Ubuntu Paketleme Kılavuzunu (ki size inanıyorum ') okumalısınız. çoktan denedim).

.debDosyanızın uyumluluğunu kontrol etmek için iyi bir araç lintian(depolardan yüklenebilir).

Burada Ubuntu ask sohbet odalarında Ask iki oturum vardı.

Ubuntu'da Ambalajın Temelleri (Ambalaj: Bölüm 1)

Launchpad PPA'lar için Ubuntu Ambalajları (Ambalaj: Bölüm 2)


Bu, paketlemeye başlamak için gerekenleri güzel bir şekilde derler, ancak NASIL'da uygulama simgesini deb dosyasına dahil etmek için bilgileri kaçırdım (ve başka bir şey bulamadım). Nasıl yapılacağına dair herhangi bir ipucu var mı?
nightcod3r

14

Hangi parçalarla sorun yaşıyorsun? Her ne kadar karmaşık olsa da, onu takip ederken kılavuz çok net görünüyordu.

Hızlı özet:

  • Kaynak ayıkla .tar.gz
  • Çalıştırmak dh_make
  • Debian dosyalarını düzenle
  • Debuild'i çalıştır

3
Kafam karıştı, bu kaynak dil veya dizin yapısı ne olursa olsun aynı mıdır?
Seth

9
İşin aslı, bir .tar.gz'ye sahip değiliz. yazdığımız bir uygulamayı paketlemek istiyoruz. Hiçbir rehber bunu kapsamıyor gibi görünmüyor, hepsi bizim sahip olmadığımız bir "memba tarball" ile başlıyor.
John Little

@JohnLittle bu cevap yardımcı olabilir: askubuntu.com/a/27731/5
Nathan Osman

1
Peki ya uzun süreli, tekrarlanan paketleme? Bu kadar uzun ve karmaşık paketleme işlemlerini her zaman yapmak zorunda mıyım?
kravemir

Kullanıcının GPG anahtarı yoksa , debuild" debsign: gpg hatası oluştu! İptal ediliyor ... " ile başarısız olur .
agc


5

Bir şeyi paketlemenin en kolay yolu checkinstall kullanmaktır .


4
checkinstall, kaynak kurulum yönteminden debin ikili paketini (.deb) oluşturmak için hızlı bir yol sağlar. Ancak, uygun bir debian paketi sağlamaz (debian kaynak paketinden oluşturulmuştur).
João Pinto,

OH dostum .. Bunu derlemeden ÖNCE kullanmak zorunda kaldım .. saatlerce sürmek gibi.
Piotr Kula

5

Orijinal olarak StackOverFlow'da yayınlanan bu kılavuz önceden derlenmiş veya yorumlanmış yazılımlar içindir:

Bir deb paketi oluşturmanın doğru yolu kullanıyor dpkg-buildpackageancak bazen biraz karmaşık. Bunun yerine kullanabilirsiniz dpkg -b <folder>ve Debian paketinizi oluşturacaktır.

dpkg -b <folder>Manuel derlemeye (Python, Bash, Pearl, Ruby) ihtiyaç duymadan otomatik olarak çalışan herhangi bir ikili içeren veya herhangi bir komut dosyası içeren bir Debian paketi oluşturmanın temelleri şunlardır :

  1. Aşağıdaki yapıyı yeniden oluşturmak için dosya ve klasörleri oluşturun:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Yerleştirilen komut dosyaları /usr/bin/doğrudan terminalden çağrılır, not dosyasına bir uzantı eklemediğimi unutmayın. Ayrıca deb paketinin yapısının kurulduktan sonra programın yapısı olacağını fark edebilirsiniz. Bu nedenle, eğer programınız tek bir dosyaya sahipse bu mantığı izlerseniz, doğrudan altına yerleştirebilirsiniz ProgramName-Version/usr/bin/your_script, fakat eğer birden fazla dosyanız varsa, onları altına yerleştirmeli ProgramName-Version/usr/share/ProgramName/all your filesve altına sadece bir dosyayı yerleştirmelisiniz /usr/bin/./usr/share/ProgramName/

  2. Tüm klasör izinlerini root olarak değiştirin:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. Komut dosyasının izinlerini değiştirin:

     chmod 0755 /path/to/the/script
    
  4. Sonunda koşabilirsiniz: dpkg -b /path/to/the/ProgramName-Versionve deb paketiniz oluşturulacak! (Ayrıca, post / post öncesi komut dosyalarını ve istediğiniz her şeyi ekleyebilirsiniz, normal bir Debian paketi gibi çalışır)

İşte bir controldosya örneği . Yalnızca "control" adlı boş bir dosyaya kopyalayıp yapıştırmanız ve DEBIAN klasörüne koymanız yeterlidir.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.

3

Hayır, bu dünyadaki en basit ve en net paketleme kılavuzu

Ubuntu ve Diğer Debian'lar için Java Uygulamalarını Paketleme

Birkaç gün önce ilk uygulamam için bu öğreticiyi izleyerek DEB paketi hazırladım. Çok net ve benim app başarıyla paketlenmiş. Evet, en azından benim için en basit olanı.

Debian Packaging Guide ile karşılaştırabilirsiniz.


3
"Basit", "tamamlanma" anlamına gelmez. Temel bir .deb paketleme eğitiminin farklı programlar için geçerli olmayacağı birçok politika vardır ve bu nedenle paketleme sadece "basit bir eğitim" kadar kolay değildir.
Thomas Ward

kesinlikle basit. Beni başlattı ve ilk debian paketimi dakikalar içinde yaratabildim. Bununla başa çıkmak için hala birçok ayrıntı (lintiandan gelen kötü paket kalitesi mesajları) ancak harika bir başlangıç ​​noktası.
atmelino
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.