स्रोतों से मेरे सभी स्थापित पैकेज का निर्माण कैसे करें?


26

मैंने इस बारे में पढ़ा है कि उंटू जैसे पूर्व-निर्मित डिस्ट्रोस की तुलना में जेंटू जैसे स्रोत-आधारित डिस्ट्रोक्स का प्रदर्शन कितना बढ़ सकता है क्योंकि वे स्रोत से आपके विशेष सिस्टम के लिए अनुकूलन के साथ स्थापित होते हैं। क्या एक ही तरह का लाभ प्राप्त करने के लिए स्रोत से उबंटू का निर्माण संभव है?


3
उसके लिए Gentoo, Ubuntu नहीं, स्थापित करें। गंभीर रूप से, एक डिस्ट्रो का उपयोग क्यों करें जो स्रोत के आधार पर निर्भरता प्रबंधन में विफल रहता है बजाय इसके कि उस पर चट्टानें?
10

7
मुझे स्रोत और बाइनरी के बीच बेंचमार्क देखने की उत्सुकता होगी जहां वे वास्तव में एक ही स्टैक संस्करण और कॉन्फ़िगरेशन का उपयोग करते थे। तुलना आमतौर पर एक उबंटू रिलीज (अपनी डिफॉल्ट्स के साथ) बनाम एक विषमबॉल फाइलसिस्टम और विचित्र एप डिफॉल्ट्स के साथ नवीनतम संभव जेंटू बनाम है। उबंटू डिफॉल्ट्स ज्यादातर बहुत समझदार होते हैं और यहीं से इसका अधिकांश प्रदर्शन सामने आता है और इसीलिए सबसे सीधी तुलना उबंटू को गेंटू से आगे रखती है।
ओली

1
एक बुरी तुलना का एक बड़ा उदाहरण यह लिनक्स पत्रिका लेख (पढ़ने के लिए आवश्यक नि: शुल्क पंजीकरण) है जहां वे विभिन्न गुठली, विभिन्न एनवीडिया चालक, विभिन्न एक्स संस्करण और विभिन्न डेस्कटॉप वातावरण का उपयोग करते हैं। आप उबंटू के दो अलग-अलग संस्करणों की तुलना कर सकते हैं। वे अंतर के समान पैमानों को दिखाएंगे।
ओली

4
प्रदर्शन क्या बढ़ता है? नेटवर्क थ्रूपुट, डिस्क गति, प्रक्रिया स्विचिंग, शुद्ध गणित गणना, 3 डी-ग्राफिक्स, बूटअप-टाइम?
उपयोगकर्ता अनजान

1
मैं केवल सॉफ्टवेयर को संकलित करने की सलाह दूंगा, जिसमें बड़े पैमाने पर सीपीयू प्रदर्शन की आवश्यकता होती है (वीडियो एन्कोडिंग दिमाग में आती है) और इसका उपयोग उपयोगकर्ता द्वारा किया जाता है और सीपीयू अनुकूलन से लाभ होता है जैसे उदाहरण FMA3 या AVX2।
कीकी

जवाबों:


42

Is is possible to build Ubuntu from source to get the same kind of benefit?

यदि आप काफी नए हार्डवेयर घटक हैं, लेकिन "उबंटू से स्रोत" सवाल का हिस्सा है, तो इसका उत्तर मुझे हाँ में नहीं है, इस बारे में मुझे यकीन नहीं है कि आप स्रोत से न केवल अपने पसंदीदा अनुप्रयोगों का निर्माण कर सकते हैं, बल्कि संपूर्ण ऑपरेटिंग सिस्टम भी बना सकते हैं।

यहां कैसे:

आपको apt-build इंस्टॉल करना होगा । इसका एक comandline टूल apt-get की तरह है, लेकिन बाइनरी पैकेज को डाउनलोड और इंस्टॉल करने के बजाय apt-build पैकेज के सोर्स कोड को डाउनलोड करता है, इसे संकलित करता है और फिर इसे आपके सिस्टम में इंस्टॉल करता है।

आप इसे स्थापित करने के बाद

sudo apt-get install apt-build

आपसे एक अनुकूलन स्तर (मध्यम ठीक है) के लिए पूछा जाएगा, क्या आप एपीटी (हाँ) के लिए एक उपयुक्त बिल्ड रेपो बनाना चाहते हैं और प्रोसेसर आर्किटेक्चर के बारे में एक प्रश्न (मेरी इंटेल i7 को कोर 2 माना जाता है)। बेशक इस तरह से सभी विकल्पों को फिर से जोड़ा जा सकता है:

dpkg-reconfigure apt-build

उपरोक्त कमांड gcc संकलक के लिए दो अतिरिक्त विकल्प प्रदान करता है और बिल्डर बनाता है। उनके विवरण सिस्टम मैनुअल में पाए जा सकते हैं: आदमी जीसीसी और आदमी बनाते हैं।

एक मैनुअल और उपलब्ध कमांड विकल्प के लिए जाँच करें

man apt-build

लेकिन सबसे उपयोगी हैं:

  • apt-build अद्यतन - अद्यतन रेपो सूची, (apt-get अद्यतन की तरह)
  • एप्ट-बिल्ड अपग्रेड - अपडेट ऑपरेटिंग सिस्टम, (जैसे एप्ट-गेट अपग्रेड)
  • एप्ट-बिल्ड इंस्टॉल प्रोग्राम - एक एप्लिकेशन इंस्टॉल करता है, (जैसे एप्ट-गेट इंस्टॉल)
  • उपयुक्त-बिल्ड दुनिया - हार्ड-कोर उपयोगकर्ताओं के लिए कुछ है, यह पूरे सिस्टम को फिर से जोड़ देता है!

उदाहरण के लिए:

कहते हैं कि आप Gedit को संकलित / स्थापित करना चाहते हैं। इसके बजाय apt-get install आप बस करो

sudo apt-build install gedit

Apt-build /etc/apt/source.list फ़ाइल में सम्‍मिलित डिबेट-src प्रविष्टियों का उपयोग करता है, इसलिए संकलन और संस्थापन प्रक्रियाएँ पूरी तरह से स्वचालित होती हैं (गेंटू में पाए जाने वाले समान)। Apt-build मुख्य एप्लिकेशन और उसके निर्भरता के डाउनलोड स्रोत, उन्हें संकलित करता है, एक डिबेट पैकेज बनाता है, और अंत में पैकेज को स्थापित करता है।

उपयुक्त-निर्माण दुनिया के बारे में कुछ नोट्स।

जब तक आपके पास 24 या अधिक घंटे उपलब्ध न हों, मेरी राय में इसका प्रयास न करें!

यदि पहली चीज़ आपको चाहिए, तो किसी भी तृतीय पक्ष एप्लिकेशन को हटा / अक्षम / अक्षम करें (यह उबंटू की एक नई स्थापना में करना बेहतर है) और फिर:

sudo su
dpkg --get-selections | awk '{if ($2 == "install") print $1}'> /etc/apt/apt-build.list
exit

उपरोक्त कमांड आपके सिस्टम पैकेज की पूरी सूची apt-build.list पर कॉपी कर देगा ताकि उन्हें स्रोत से संकलित किया जा सके। उस फ़ाइल को खोलें

sudo gedit /etc/apt/apt-build.list

और किसी भी GCC / G ++ प्रविष्टि को हटा दें

तो आप कर सकते हैं:

sudo apt-build world

मेरा सुझाव है कि पुनर्निर्माण की प्रक्रिया को पूरी तरह से स्वचालित बनाने के लिए --yes और --force-yes दो विकल्पों को जोड़ें।


10
"क्यों निर्माण?" की तुलना में ठोस उत्तर के लिए +1 जवाब। मैं उन लाभों के बारे में और अधिक व्यापक राय (भले ही व्यक्तिपरक) पढ़ना चाहता हूं, का उपयोग करके प्राप्त कर सकता है (या नहीं कर सकता) apt-build
enzotib

1
वर्तमान में इस उत्तर के लिए +17 हैं। लेकिन क्या किसी ने सफलतापूर्वक किया है?
कीकि

1
@ otakun85 मैंने उबंटू पर सफलतापूर्वक कुछ पैकेजों को संकलित करने के लिए apt-build का उपयोग किया है (यह याद नहीं कर सकता कि कौन सा रिलीज, 12.04 | 12.10 | 13.04), मैंने apt-build world का प्रयास किया जो एक गड़बड़ था। आदमी पेज apt-निर्माण के लिए अंत में इस है BUGS Many.तो मुसीबत उम्मीद।
13

मुझे लगता है कि apt-build worldइसका उपयोग करने के बजाय "लिनक्स स्क्रैच से लिनक्स" पुस्तक डाउनलोड करना बेहतर है, और इसमें apt-buildसूचीबद्ध प्रत्येक पैकेज के लिए करें। यह सही क्रम आदि को निर्दिष्ट करता है। उदाहरण के लिए, मुझे यकीन नहीं है, अगर apt-build worldयह जानता है कि पहले इसे फिर से शुरू करना चाहिए binutils, फिर gcc, फिर binutilsसे, gccफिर, प्रोग्रामिंग भाषाओं gzipआदि , ऐसा लगता है कि यह सब कुछ वर्णानुक्रम में संकलित करता है।
सेरही विन्ह्रादोव

@SerhyiVynohradov: यह कोई फर्क नहीं पड़ता। LFS मेजबान प्रणाली में पुस्तकालयों पर किसी भी निर्भरता को छोड़ने से बचने के लिए करता है, लेकिन यहाँ यह संकलित संस्करणों के साथ हर जगह-जगह बदल रहा है; वे अभी भी एक ही स्थान पर रहेंगे, एक ही ABI, आदि होंगे
निक मैट्टे

3

आप इस तरह के विषय के बारे में एक व्यापक और एक बड़ी बहस शुरू कर सकते हैं, लेकिन वास्तविक जीवन को देखते हैं।

आपके OS की गति इस बात पर निर्भर करती है कि आप इसे किस हार्डवेयर से चलाते हैं और यह प्रमुख कारक है।

मैं अक्सर आर्क के साथ रहने के दौरान डिस्ट्रोस बदलता हूं, लेकिन क्या आर्क उबंटू की तुलना में तेज है? नहीं।

Ubuntu 10.10 पर compiz के साथ Gnome, आर्क 200ram पर 300ram के बारे में 300 का उपयोग करता है, मेरे पास 4gb है RAM, मुझे अंतर महसूस नहीं होता है, लेकिन अगर आप उबंटू की तुलना gnome से आर्क के साथ कमाल से करते हैं, तो जवाबदेही और संसाधन में भारी वृद्धि होगी उपयोग (300ram बनाम 50ram), लेकिन यह केवल तभी मायने रखता है जब आप नेटबुक के लिए डिस्ट्रो चुन रहे हों।

इसलिए यदि आपके पास एक तेज डेस्कटॉप है और आप अपने सिस्टम के साथ समय बिताने का समय नहीं चाहते हैं तो सिर्फ उबंटू का उपयोग करें, लेकिन अगर आपके पास आर्क पर एक हल्के WM का उपयोग करने पर विचार करने की तुलना में एक नेटबुक है :)


खैर, कुछ बिंदु पर आप उस स्थिति में पहुंच सकते हैं जहां आपके पास नवीनतम हार्डवेयर है, लेकिन आपको अभी भी घंटे-लंबे ऑपरेशन करने की आवश्यकता है। और लोड को वितरित करने के लिए सर्वरों का एक समूह स्थापित करने के बजाय, आप उस अतिरिक्त 20% को बढ़ावा देने के लिए कुछ समय का खर्च करने के लिए बुरा नहीं मानते हैं। मैंने कभी भी आर्क का इस्तेमाल नहीं किया, लेकिन मैंने जेंटू की कोशिश की। और मैंने देखा कि बहुत बार "तेज डिस्ट्रो" जैसी कोई चीज नहीं होती है। इसके बजाय "कम सॉफ्टवेयर वाला डिस्ट्रो" है। आपके पास नंगे-हड्डियों की प्रणाली हो सकती है जो तेज है, लेकिन सुरक्षित नहीं है। और जब आप अन्य पैकेजों को स्थापित करते हैं तो यह उबंटू + एप्ट-बिल्ड के समान गति हो जाता है।
सेरही विन्ह्रादोव

0

Apt-बिल्ड प्रदर्शन से अधिक के लिए उपयोगी है, आप अपने व्यवसाय के लिए बड़े पैमाने पर इंस्टॉल के लिए तैयार विशिष्ट हार्डवेयर के लिए कस्टम वितरण चित्र और रिपॉजिटरी का निर्माण कर सकते हैं। इसके द्वारा, मेरा मतलब है एक अनुकूलित बाइनरी वितरण यदि आप जानते हैं कि सभी हार्डवेयर समान होंगे। इस तरह, केवल एक कंप्यूटर सभी काम संकलन करता है, और शेष केवल रीमास्टर्ड आईएसओ का उपयोग करके अपग्रेड किए जाते हैं। यह पूरी तरह से केवल हल्के या एन्कोडिंग के लिए नहीं है। और एक कस्टम इंस्टॉलर आईएसओ आपको फिर से स्थापित किए बिना पुनर्स्थापित करने की अनुमति देता है यदि किसी कारण से आपका सिस्टम किसी आपदा के बाद अपरिवर्तनीय है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.