Emmet'e katılmamak her zaman tehlikelidir, bu yüzden cevabının muhtemelen daha doğru olduğunu kabul ederek başlamama izin verin. Ancak, şahsen ben daha çok kullanıcı dostu ve kutudan daha iyi performans gösteren bir inşaatçı buluyorum.
Eğer Ubuntu 12.10 veya daha yenisindeyseniz, ham yapıcının etrafına son derece dostça sarmalayıcılar koyan mükemmel pbuilder-scriptlerini kurduğunuzdan emin olun .
Ubuntu 12.04 kullanıyorsanız, pbuilder-scripts'i backports deposundan yükleyebilirsiniz.
Şimdi, eşdeğer işlemlerin kullanıcı dostu olduğunu karşılaştıralım ve karşılaştıralım. Bu örneklerde, x86'da barındırılan bir ARM chroot kullanarak yürüyeceğim, ancak kavramlar hala x86'da barındırılan bir x86 chroot için de geçerli. Unutma, ben el yapımı senaryo sarmalayıcılarını kullanıyorum.
Unutulmaması gereken bir şey, yapımcı komut dosyalarının Ruby on Rails'in sizin için nasıl bazı kararlar vermesiyle aynı şekilde hızlı bir şekilde ilerleyebilmesi gibi bir kongre düzenlemesidir. Bunları ilerledikçe göstermeye çalışacağım.
Bir chroot oluştur
mk-sbuild --arch=armhf quantal
vs
# in addition to the chroot, creates a new, empty directory named ~/Projects/quantal-armhf
pcreate -a armhf -d quantal quantal-armhf
Karar ver: kravat , her iki komut satırı oldukça basittir ve her ikisi de gerekirse meraklısı kullanım durumları için ekstra seçenekler alabilir. Ancak, pcreate tarafından oluşturulan ek yeni dizini not edin.
Kaynak paket indir
# standard debian/ubuntu method, works in any directory
apt-get source casper
vs.
# 'quantal-armhf' is the name of the chroot created earlier
# results in downloading package to: ~/Projects/quantal-armhf/casper/
pget quantal-armhf casper
Karar: sbuild için hafif bir kenar çünkü standart debian / ubuntu en iyi yöntemini kullanıyorsunuz. Pget tarafından kullanılan konvansiyon ilk başta garip görünebilir, ancak Ubuntu'nun birden fazla sürümünde birden fazla paket üzerinde çalıştığım için dayattığı organizasyonu seviyorum. Ayrıca apt-get kaynağının, komutu çalıştırdığınız her yerde kaynağı ayıkladığını ve sizi şahsen bulduğum * .orig.tar.gz, * .debian.tar.gz, * .dsc ve genişletilmiş dizini bıraktığını unutmayın. dağınık ol. Organizasyonun güzelliği yakında gelecek, söz veriyorum.
Chroot, geçici sürümünü girin
schroot -c quantal-armhf
vs.
ptest quantal-armhf
karar: pbuild için hafif kenar , daha az karakter yazmak için daha az karakterdir. Chroot'a girmenin bu sürümünde, chroot'tan çıktıktan sonra burada yaptığınız değişikliklerin kaybolacağını unutmayın. Ayrıca, schroot'ta normal bir kullanıcı kalacağınızı, ptest ile kök kullanıcı olarak chrootta olacağınızı unutmayın.
Chroot'a girin, değişiklikleri kaydedin
sudo schroot -c quantal-armhf-source -u root
vs.
ptest quantal-armhf --save
Karar: bence pbuild için hafif bir kenar , daha az karakter ve daha sezgisel komut satırı argümanları. Chroot'a girmenin bu versiyonunda, yapacağınız değişiklikler gelecekteki çağrılar için kaydedilecektir.
Chroot içinde bir paket oluşturun
debuild -S -sa -I -i
sbuild -A --arch armhf -d quantal-armhf /path/to/casper-1.315.dsc
vs.
# must be invoked when pwd is ~/Projects/quantal-armhf/casper/casper-1.315
pbuild
Karar: pbuild , şimdi pbuild'in sözleşmelerini kullanırken ilk önemli kazancı görüyoruz. Bu, mimariyi belirtmek yerine, chroot adını belirtmek ve sbuild'in gerektirdiği bir * .dsc dosyasına giden bir yolu gerektiren, hatırlanması gereken başka bir şey olmayan basit bir komuttur. Ek olarak, sbuild ile yeni bir * .dsc dosyası oluşturmayı unutmamalısınız, pbuild bunu sizin için otomatik olarak yapacak.
Aynı paketi chroot'ta oluşturun, ikinci kez
Yukarıdaki örnekte, hem sbuild hem de pbuild, build-dep'leri kendi chroot'larına indirecek ve yükleyecek. Ancak, pbuild , indirilen .deb dosyalarını / var dizinine kaydeder , bu yüzden pbuild'i ikinci kez çağırırsanız, tüm derlemeleri indirmeniz gerekmez (yine de chroot'a yüklenmeleri gerekir). sbuild .deb dosyalarını önbelleğe almaz (en azından varsayılan olarak) ve bu nedenle chroot'a yüklenmelerini beklemenin yanı sıra tüm derlemeleri indirmelisiniz.
Karar: Uzun bir atışla pbuild . Derleme-önbellekleri önbelleğe almak harika bir varsayılan ayardır ve pbuild, arşivde derleme-deponun daha yeni bir sürümü olup olmadığını tespit etmek için yeterince akıllıdır ve gerekirse yeni sürümü indirecektir. Birçok yapı içeren karmaşık bir paket için, bu basit ayar size hayatınızdan birkaç dakika kazandırır.
özet
Kutudan çıktığımda, pbuilder-scriptlerinin sbuild eşdeğerlerinden çok daha dostça ve hızlı olduğunu düşünüyorum. Elbette, inşaatçıyı daha da hızlı hale getirmenin yolları var (bir tmpfs içinde inşa etmek, bazı chroot kancalarını devre dışı bırakmak için) ve muhtemelen sbuild için de aynı püf noktaları var, ama ben onlardan habersizim.
Bu yardımcı olur umarım.
sbuild
Söylediğin ilginç şey , fırlatma rampası (anladığım kadarıyla) çalışsa bile Ubuntu paketlerini oluşturmak için kullanılıyorpbuilder
...