Çok mimarili PPA'lar nasıl oluşturulur ve yönetilir?


13

Her ubuntu sürümü için yeniden derlenmesi gereken bir programım var.

Şu anda sadece dağıtım için Ubuntu'nun PPA'sını kullanarak paketliyorum.

Sonunda, önceki ubuntu sürümü için paketler sağlamak zorundayım.

Bunu nasıl başaracağımdan emin değilim.

Ubuntu PPA derleme sunucusu nasıl çalışır - paketin hangi dağıtımın oluşturulması gerektiğini belirlemek için yalnızca en güncel changelog girişindeki (debian / changelog dosyasında) dağıtım alanına bakar mı?

Debian özelliği dağıtım alanına birden çok dağıtım eklemenize izin verir. Ama bu bana yardım etmek için dikiş yapmıyor.

Bazı ubuntu belgeleri , dağıtım adını sürüm numarasına (debian changelog dosyasında) kodlamaktan bahseder.

Fakat bu pratikte nasıl çalışır? Programın yeni bir sürümü var, ne olacak? Her dağıtım için yeni bir değişiklik günlüğü girdisi ekler miyim ve PPA oluşturucusu, her dağıtım için yeni paketleri girdikten sonra otomatik olarak oluşturur mu? Yoksa PPA buildserver sadece ilk changelog girişine mi bakıyor?


1
Bu süreçle de gerçekten ilgileniyorum!
Marco Ceppi

Yanıtlar:


7

Gidilecek yol, her Ubuntu sürümü için bir kez yüklemektir .

Launchpad, artık desteklenmeyen Ubuntu sürümleri için paketler oluşturmaz ve yalnızca Ubuntu'nun belirli bir sürümü için bir paket oluşturur. Hedeflenen sürüm (zaten bildiğiniz gibi) changelogdosyada en yeni giriş tarafından belirtilir !

Programınızın bağlı olduğu paketlerin tüm Ubuntu sürümlerinde aynı sürümde bulunmayabileceğini unutmayın.

Ayrıca, "çoklu mimari" (mimari = CUP türü, örn. X86, LPIA, AMD64) hakkında da konuşuyorsunuz, çünkü yüklenen her paket Architecture: any, package definition ( debian/control) dosyasında bulunduğunuz sürece mevcut tüm mimariler için oluşturulduğundan , bu ayrıca paketi farklı mimariler için farklı paketlere bağımlı hale getirmenizi sağlar (paketi bir kereden fazla tanımlamak)


10

Launchpad'in şu anda beta sürümünde, ek bir iş yapmadan aynı anda birden fazla ubuntu sürümü için paketinizi oluşturmanıza izin veren yeni bir özelliği var. Paketlerinizi her gün otomatik olarak oluşturabilirsiniz. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted alternatif metin


1
Bu ilginç geliyor. Depo barındırma için bzr veya launchpad kullanmadım (Mercurial kullanıyorum). Fakat! Belki de yeni bir paket derlemesi başlatmak istediğimde, fırlatma rampasında bir bzr deposu oluşturmak ve ana depomdan en son değişiklik kümelerini dökmek mümkündür.
maxschlepzig

Bu kadar sık ​​bir şey kodlamıyorum ve bunun için heyecanlıyım.
aperson

@maxschlepzig Hg eşyalarınızı Launchpad'e nasıl aktaracağınıza dair ayrı bir soru sorun, ben de cevaplayacağım.
Jorge Castro

6

Adlandırma kurallarıyla ilgili olarak, standart böyle bir şey yapmaktır:

  • Ubuntu'nun resmi arşivinde bulunan paket için 1.0-0ubuntu1
  • 1.0-0ubuntu1 ~ lucidppa1, PPA'nıza lucid için koyduğunuz paketin sürümü için
  • 1.0-0ubuntu1 ~ Karmicppa1 için bu paketin Karmic sürümü için

Bunun nedeni, sürüm alanındaki bir ~ sürüm numarası için "hiç yoktan küçük" ifadesini temsil etmesidir. Birisi PPA'nızı Karmic'e eklerse, ~ karmicppa1 paketini alırlar. Daha sonra Lucid'e yükselttiklerinde (ve PPA'nızı okuduklarında) yerini Lucid PPA paketi alacaktır. Paketiniz resmi arşive girerse, PPA'nızdan geçiş sorunsuz bir şekilde devam edecektir.

Diğer bir avantaj, sürümün sürüm alanına yerleştirilmesinin dosyaların hangi sürüm için geçerli olduğunu netleştirmesidir (ve her sürüm için bir tanesini yüklemenizi hatırlatır). Örneğin, farklı bağımlılıklarınız olduğunda her bir Ubuntu sürümü için farklı şubelere ihtiyacınız olabilir.


Scott - bununla ilgili bir çeşit belge var mı?
Bartosz Radaczyński

~ Ve eşyalar muhtemelen belirsiz bir yerde etiketlenir. Geri kalanı sadece resmi belgelendirilmiş uygulama değil, diğer geliştiriciler arasında gözlemlediğim sözleşmeler.
Scott Ritchie

Tamam, teşekkürler, önerilen adlandırma kuralınız iyi çalışıyor.
Bartosz Radaczyński

Ben bu bazen ppa önce ek bir ~ koymak için uzatılmış olduğunu eklemeliyim: 1.0-0ubuntu1 ~ karmic1 ~ ppa1 Bunun nedeni Karmic için resmi bir kararlı yayın güncellemesi 1.0-0ubuntu1 ~ karmic1 olarak yayınlanabilir PPA sürümünün bundan daha düşük olmasını isteyin.
Scott Ritchie

Freenode üzerinde #launchpad sormak zorunda kaldım ve görünüşe göre bu bir Kaynak Paket Oluşturma altında LaunchPad Wiki yarı belgelenmiştir . Bu sözleşmeyle ilgili bilgi için teşekkürler, oldukça faydalı ^ _ ^
TrinitronX
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.