एम्मेट से असहमत होना हमेशा खतरनाक होता है, इसलिए मुझे स्वीकार करते हुए शुरुआत करनी चाहिए कि उनका जवाब शायद अधिक सही है। हालाँकि, मुझे व्यक्तिगत रूप से अधिक उपयोगकर्ता के अनुकूल और बॉक्स से बाहर अधिक प्रदर्शन करने वाले मिलेंगे।
यदि आप उबंटू 12.10 या उसके बाद के हैं, तो उत्कृष्ट पिल्डर-स्क्रिप्ट्स को स्थापित करना सुनिश्चित करें, जो कि कच्चे पिल्डर के आसपास बेहद अनुकूल रैपर का एक सेट है ।
यदि आप उबंटू 12.04 पर हैं, तो आप बैकपॉर्स रिपॉजिटरी से पाइलडर-स्क्रिप्ट स्थापित कर सकते हैं।
अब, आइए, समकक्ष संचालन के उपयोगकर्ता-मित्रता की तुलना करें और इसके विपरीत करें। इन उदाहरणों में, मैं x86 पर होस्ट किए गए ARM chroot का उपयोग करके चलूंगा, लेकिन अवधारणाएं अभी भी x86 पर होस्ट किए गए x86 चेरोट पर लागू होती हैं। याद रखें, मैं पिल्लर-स्क्रिप्ट के रैपर का उपयोग कर रहा हूं।
एक बात ध्यान देने वाली है कि पाइलडर-स्क्रिप्ट्स थोड़ा सा कन्वेंशन लागू करती हैं, इसी तरह रूबी ऑन रेल्स आपके लिए कुछ निर्णय लेती है ताकि आप जल्दी से जल्दी जा सकें। मैं कोशिश करूँगा और इन बिंदुओं को बताऊंगा।
एक चूरोट बनाएँ
mk-sbuild --arch=armhf quantal
बनाम
# in addition to the chroot, creates a new, empty directory named ~/Projects/quantal-armhf
pcreate -a armhf -d quantal quantal-armhf
फैसला: टाई , दोनों कमांड लाइन बहुत सरल हैं, और दोनों जरूरत पड़ने पर कट्टरपंथी मामलों के उपयोग के लिए अतिरिक्त विकल्प ले सकते हैं। हालाँकि, pcreate द्वारा बनाई गई अतिरिक्त नई निर्देशिका पर ध्यान दें।
स्रोत पैकेज डाउनलोड करें
# standard debian/ubuntu method, works in any directory
apt-get source casper
बनाम
# 'quantal-armhf' is the name of the chroot created earlier
# results in downloading package to: ~/Projects/quantal-armhf/casper/
pget quantal-armhf casper
फैसला: क्रिप्ट के लिए मामूली बढ़त , क्योंकि आप मानक डेबियन / ubuntu सबसे अच्छा अभ्यास का उपयोग कर रहे हैं। पिंग द्वारा उपयोग किए जाने वाला सम्मेलन पहली बार में अजीब लग सकता है, लेकिन जब से मैं उबंटू के कई रिलीज में कई पैकेजों पर काम करता हूं, मुझे संगठन पसंद है। यह भी ध्यान दें कि apt-get source वह स्रोत भी निकालता है जहां आप कमांड चलाते हैं, * .orig.tar.gz, * .debian.tar.gz, * .dsc और विस्तारित निर्देशिका के साथ, जिसे मैं व्यक्तिगत रूप से पाता हूं। गन्दा होना। संगठन की सुंदरता जल्द ही आ रही है, मैं वादा करता हूं।
चिरोट, पंचांग संस्करण दर्ज करें
schroot -c quantal-armhf
बनाम
ptest quantal-armhf
फैसला: प्वॉइंट के लिए मामूली बढ़त , टाइप करने के लिए कम वर्ण कम वर्ण हैं। ध्यान दें कि चेरोट में प्रवेश करने के इस संस्करण में, चेरोट से बाहर निकलते ही आपके द्वारा यहाँ किया गया कोई भी परिवर्तन खो जाएगा। यह भी ध्यान दें कि schroot में, आप सामान्य उपयोगकर्ता बने रहेंगे जबकि ptest के साथ, आप रूट उपयोगकर्ता के रूप में chroot में रहेंगे।
चेरोट दर्ज करें, परिवर्तन संस्करण सहेजें
sudo schroot -c quantal-armhf-source -u root
बनाम
ptest quantal-armhf --save
फैसला: मेरी राय में, प्वॉइंट के लिए मामूली बढ़त , कम पात्र और अधिक सहज कमांड लाइन तर्क। चेरोट में प्रवेश करने के इस संस्करण में, आपके द्वारा किए जाने वाले किसी भी बदलाव को भविष्य के चालान के लिए सहेजा जाएगा।
चुरोट के भीतर एक पैकेज बनाएँ
debuild -S -sa -I -i
sbuild -A --arch armhf -d quantal-armhf /path/to/casper-1.315.dsc
बनाम
# must be invoked when pwd is ~/Projects/quantal-armhf/casper/casper-1.315
pbuild
फैसला: क्रमानुसार , अब हम पहली महत्वपूर्ण जीत देखते हैं जब प्वॉइंट्स कन्वेंशन का उपयोग करते हैं। यह एक मृत सरल आदेश है जिसमें याद रखने के लिए और कुछ नहीं है, बनाम वास्तुकला को निर्दिष्ट करना, चुरोट का नाम, और एक * .dsc फ़ाइल के लिए एक पथ की आवश्यकता होती है जिसे पुनर्निर्माण की आवश्यकता होती है। इसके अतिरिक्त, आपको एक नई * .dsc फ़ाइल को जनरेट करने के लिए याद रखना चाहिए, जबकि pbuild आपके लिए यह स्वचालित रूप से कर देगा।
चिरोट में एक ही पैकेज बनाएं, दूसरी बार
उपर्युक्त उदाहरण में, sbuild और pbuild दोनों अपने-अपने chroots में बिल्ड-डिप्स को डाउनलोड और इंस्टॉल करेंगे। हालाँकि, Pbuild डाउनलोड की गई .deb फ़ाइलों को / var में सहेजता है, इसलिए यदि आप दूसरी बार pbuild करते हैं, तो आपको सभी बिल्ड-डिप्स को फिर से डाउनलोड करने की आवश्यकता नहीं है (हालांकि उन्हें अभी भी चेरोट में स्थापित होना चाहिए)। sbuild .deb फ़ाइलों को कैश नहीं करता है (कम से कम डिफ़ॉल्ट रूप से), और इसलिए, आपको चिरोट में स्थापित होने के लिए प्रतीक्षा करने के अलावा सभी बिल्ड-डिप्स को फिर से डाउनलोड करना होगा।
फैसले: pbuild एक लंबे शॉट से। बिल्ड-डिप्स को कैशिंग करना एक महान डिफ़ॉल्ट सेटिंग है, और संग्रह में बिल्ड-डिप का एक नया संस्करण है या नहीं, यह पता लगाने के लिए पर्याप्त रूप से स्मार्ट है और आवश्यकता पड़ने पर नए संस्करण को खींच लेगा। कई बिल्ड-डिप्स के साथ एक जटिल पैकेज के लिए, यह सरल सेटिंग आपके जीवन के कुछ मिनटों को बचाएगा।
सारांश
बॉक्स से बाहर, मुझे पाइलडर-स्क्रिप्ट मिलती है, जो कि समतुल्य समकक्षों की तुलना में बहुत अधिक मित्रवत और तेज़ है। बेशक, वहाँ भी तेजी से बनाने के लिए (एक tmpfs में निर्माण, कुछ chroot हुक को निष्क्रिय) तरीके हैं, और वहाँ भी शायद एक ही चाल के लिए भी हैं, लेकिन मैं उनसे अनजान हूँ।
उम्मीद है की यह मदद करेगा।
sbuild
लॉन्चपैड (भले ही मेरी समझ से) रन बनाने के लिए उबंटू के पैकेज बनाने के लिए उपयोग किया जाता हैpbuilder
...