इंस्टालेशन उबंटू बनाते हैं। उबंटू मेक - डेवलपर्स की मदद के लिए। कर्नेल स्रोत डाउनलोड करें

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

लब्बोलुआब यह है कि "मेक इंस्टॉल" या "सुडो मेक इंस्टॉल" के रूप में इस कमांड का उपयोग आधुनिक वितरण में नहीं किया जा सकता है।

लेकिन इंस्टॉलेशन मैनुअल में प्रोग्राम के लेखक लिखते हैं कि आपको इस कमांड का उपयोग करने की आवश्यकता है, आप कह सकते हैं। हाँ, वे लिखते हैं. लेकिन इसका मतलब केवल यह है कि वे नहीं जानते कि आपके पास क्या वितरण है, या क्या यह कोई वितरण है, हो सकता है कि आप एक संप्रदाय में शामिल हो गए हों और एलएफएस पढ़ना शुरू कर दिया हो और अब अपने chthonic सिस्टम के लिए उनकी रचना को संकलित करने का निर्णय लिया हो। और इंस्टॉल करना ऐसा करने का एक सार्वभौमिक, हालांकि अक्सर गलत तरीका है।

गीतात्मक विषयांतर

जैसा कि आप जानते हैं, सामान्य संचालन के लिए, अधिकांश सॉफ़्टवेयर को न केवल संकलित किया जाना चाहिए, बल्कि सिस्टम पर सही ढंग से स्थापित भी किया जाना चाहिए। प्रोग्राम कुछ स्थानों पर उन फ़ाइलों को ढूंढने की अपेक्षा करते हैं जिनकी उन्हें आवश्यकता होती है, और अधिकांश *निक्स सिस्टम पर इन स्थानों को संकलन समय पर कोड में हार्ड-कोड किया जाता है। इस पहलू के अलावा, linux/freebsd/whatever में इंस्टालेशन प्रक्रिया और विंडोज़ और MacOS में मुख्य अंतर यह है कि प्रोग्राम केवल फ़ाइलों का एक गुच्छा प्रोग्राम फ़ाइलों या /एप्लिकेशन में एक अलग निर्देशिका में नहीं डालता है, बल्कि "फैलाता है"। संपूर्ण फ़ाइल सिस्टम में स्वयं। लाइब्रेरीज़ लिब में जाती हैं, निष्पादन योग्य फ़ाइलें बिन में, कॉन्फ़िगरेशन आदि में, विभिन्न प्रकार के डेटा var में, इत्यादि। अगर आपको अचानक इसे अपडेट करने की जरूरत पड़े तो पहले ये सब किसी तरह साफ करना होगा, क्योंकि... का उपयोग करते हुए नया संस्करणपुरानी फाइलों के अवशेष पूरी तरह से अप्रत्याशित परिणाम दे सकते हैं, अक्सर अच्छा नहीं होता. इस घटना की संभावना इतनी अधिक नहीं है, लेकिन क्या आपको उत्पादन सर्वर पर इसकी आवश्यकता है?

तो क्या हुआ?

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

कैसे लड़ें?

चूँकि वितरण में पैकेजों को कभी-कभी अद्यतन किया जाता है, इस समस्या को हल करने के लिए वे पैकेज मैनेजर जैसी चीज़ लेकर आए। इसका उपयोग करते समय, इंस्टॉलेशन कुछ इस प्रकार होता है:
  1. एक निश्चित तरीके से गठित एक संग्रह लिया जाता है
  2. इसमें से जानकारी निकाली जाती है कि यह क्या है, यह कौन सा संस्करण है, यह किस पर निर्भर करता है, यह किसके साथ संघर्ष करता है, क्या इंस्टॉल/अनइंस्टॉल/कॉन्फ़िगर करने के लिए किसी स्क्रिप्ट को चलाना आवश्यक है, आदि।
  3. प्रत्यक्ष स्थापना चरण प्रगति पर हैं
  4. कहां और क्या वितरित किया गया, इसके बारे में सारा डेटा पैकेज मैनेजर डेटाबेस में जोड़ा जाता है।

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

यदि आपने अज्ञानता/आलस्य के कारण निर्देशों से मेक इंस्टाल को कॉपी और पेस्ट कर दिया है, तो सिस्टम पर फ़ाइलें दिखाई देती हैं जिनके बारे में पैकेज मैनेजर को पता नहीं होता है. इसका तात्पर्य यह है कि यदि जो पहले सूचीबद्ध किया गया था वह आपके लिए पर्याप्त नहीं है।

क्या करें?

बेशक, आप स्रोत ट्री को कॉन्फ़िगर कर सकते हैं ताकि सब कुछ /opt/mycoolapp/ में कहीं इंस्टॉल हो जाए, और फिर, यदि आवश्यक हो, तो इसे मैन्युअल रूप से हटा दें, लेकिन यहां बहुत सारी अप्रिय चीजें सामने आ सकती हैं, इस तथ्य से शुरू होकर कि प्रोग्राम उम्मीद करता है कि यह आपकी लाइब्रेरीज़ को लोड कर सकता है, और लोडर को उस निर्देशिका के बारे में कुछ भी नहीं पता है जहां वे स्थित हैं, इस तथ्य के साथ समाप्त होता है कि प्रोग्राम लेखक यह उम्मीद कर सकता है, उदाहरण के लिए, यदि वह एक फ़ाइल डालता है, मान लीजिए, $prefix/share में /xsessions/, तो डिस्प्ले मैनेजर इसे उठाएगा। pkgconfig इत्यादि के पथों का उल्लेख नहीं किया गया है।

तो आपको पैकेज इकट्ठा करने की जरूरत है.

मेरे पास इसके साथ खिलवाड़ करने का समय नहीं है, बेहतर होगा कि मैं दोबारा इंस्टॉल करूं, सब कुछ सरल और स्पष्ट है!

शांत हो जाओ, शांत हो जाओ. वह हमारे पैरों से बंधा हुआ है। सब कुछ उतना डरावना और जटिल नहीं है जितना पहली नज़र में लगता है।
स्थापना जाँचें
यह अद्भुत उपयोगिता, मेक इंस्टाल के बजाय लॉन्च होने पर, कई प्रश्न पूछेगी, जिसके बाद यह पैकेज बनाएगी और इंस्टॉल करेगी। बस, अपडेट करते समय आपको पुराने कबाड़ को साफ़ करने में कोई समस्या नहीं होगी।
डिबेट पैकेज को मैन्युअल रूप से बनाना
यदि आप ऐसे स्वचालन पर भरोसा करने के इच्छुक नहीं हैं (जो कभी-कभी गड़बड़ कर देता है) या आप कुछ बदलाव करना चाहते हैं, लेकिन पैकेज बनाने की सामान्य प्रक्रिया से निपटने के लिए अभी भी बहुत आलसी हैं, तो आप पैकेज को मैन्युअल रूप से इकट्ठा कर सकते हैं। मैं डेबियन-आधारित प्रणालियों के लिए इसे बनाने का एक तरीका प्रस्तुत करता हूं, क्योंकि मैं उनसे सबसे अधिक परिचित हूं। यह वैचारिक रूप से सही नहीं है, लेकिन अतिरिक्त संस्थाओं के उपयोग के बिना आउटपुट पूरी तरह से सही पैकेज है। यह अग्रानुसार होगा।
सबसे पहले, हम सॉफ़्टवेयर को --prefix=/usr और --exec-prefix=/usr पैरामीटर के साथ कॉन्फ़िगर या autogen.sh के लिए पूर्व-निर्दिष्ट करते हैं।
इसके बाद, हम इसे एक अस्थायी निर्देशिका में स्थापित करते हैं। हम लिखते हैं:

फेकरूट DESTDIR=`pwd`/tempinstall इंस्टॉल करें
जिसके बाद हमें नई बनाई गई डायरेक्टरी में फाइलों का पूरा सेट मिलता है। वैसे, अब हम फ़ेकरूट वातावरण में हैं, यानी आप बिना किसी प्रतिबंध के फ़ाइलों के मालिक और एक्सेस अधिकारों को बदल सकते हैं, लेकिन भौतिक रूप से आप सिस्टम के मालिक बने रहेंगे। फ़ेकरूट सत्र के अंदर सॉफ़्टवेयर परिवर्तित जानकारी प्राप्त करेगा, जो सही अधिकारों वाली फ़ाइलों को संग्रहीत करने की अनुमति देगा।
इसके बाद, "पैकेज रूट" में एक DEBIAN निर्देशिका बनाएं और उन सभी फ़ाइलों की एक सूची जोड़ें जिन्हें /etc में DEBIAN/conffiles में जाना चाहिए:

सीडी टेम्पइंस्टॉल एमकेडीआईआर डेबियन आदि ढूंढें | sed "s/^/\//" > DEBIAN/conffiles
फिर हम निम्नलिखित सामग्री के साथ एक DEBIAN/नियंत्रण फ़ाइल बनाते हैं:

यदि आवश्यक हो, तो आप वहां प्रीइंस्ट, पोस्टइंस्ट, प्रीर्म और पोस्टआरएम स्क्रिप्ट भी बना सकते हैं।

बस इतना ही, हम dpkg -b tempinstall करते हैं और आउटपुट tempinstall.deb होता है, जिसे आप सही ढंग से इंस्टॉल, अपडेट या हटाने के लिए dpkg -i का उपयोग कर सकते हैं।

प्री-पैकेजिंग के साथ "सही" प्रक्रिया सोर्स कोडइस नोट के दायरे से बाहर है, और इसलिए इसका वर्णन नहीं किया जाएगा, लेकिन आपके उद्देश्यों के लिए यह आमतौर पर आवश्यक नहीं है।

निष्कर्ष

जैसा कि आप देख सकते हैं, यहां कुछ भी जटिल नहीं है, लेकिन इन चरणों का पालन करने से आप भविष्य में बड़ी संख्या में समस्याओं से बच जाएंगे।

नमस्ते!

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

कॉन्फ़िगर

यह आदेश संकलन के लिए आवश्यक पुस्तकालयों और हेडर फ़ाइलों की खोज करता है (यह आंशिक रूप से या पूरी तरह से सी/सी++ और समान भाषाओं में लिखे गए कार्यक्रमों के लिए है), साथ ही विशेष पैरामीटर सेट करने या विशेष पुस्तकालयों को जोड़ने के लिए, यदि कॉन्फ़िगरउसे वह सब कुछ मिल जाएगा जिसकी उसे आवश्यकता है, वह सृजन करेगा मेकफ़ाइलें- प्रोग्राम बनाने के लिए आवश्यक फ़ाइल

आप इन्हीं कुंजियों की कुंजियों और तर्कों का उपयोग करके विन्यासकर्ता मापदंडों को कॉन्फ़िगर कर सकते हैं, उदाहरण के लिए:

./configure --prefix=/opt/my_program

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

तीन मुख्य फ़ाइल सिस्टम उपसर्ग हैं जिनके विरुद्ध अधिकांश प्रोग्राम कॉन्फ़िगर किए जाते हैं, अर्थात्:

  • / - ऑपरेटिंग सिस्टम की रूट डायरेक्टरी, तथाकथित रूट
  • /usr - निर्देशिका जहां उपयोगकर्ता पर्यावरण अनुप्रयोग स्थित हैं
  • /usr/स्थानीय - के लिए अतिरिक्त निर्देशिका उपयोगकर्ता कार्यक्रम, मैन्युअल रूप से एकत्र किया गया, विशेष रूप से ताकि ऑपरेटिंग सिस्टम लैंडफिल में न बदल जाए

यदि आप इनमें से किसी भी निर्देशिका को खोलते हैं, तो आप एक बहुत ही समान संरचना देख सकते हैं, कम से कम फ़ोल्डर्स होंगे: बिन, आदि, शामिल, libs, sbin।

यदि आप दौड़ते हैं कॉन्फ़िगरबिना कुंजियों के, तो डिफ़ॉल्ट उपसर्ग (निर्देशिका जिसमें संकलित प्रोग्राम स्थापित किया जाएगा) होगा /usr/स्थानीय, इसे याद रखें, यदि आप अपना प्रोग्राम नहीं चला सकते हैं, तो आपके पास इसका पथ नहीं होगा पथ.

कुंजी को छोड़कर उपसर्गविन्यासकर्ता में, एक नियम के रूप में, कई अन्य कुंजियाँ होती हैं, यदि आप चलाते हैं तो आप उन सभी को देख सकते हैं:

./कॉन्फ़िगर--सहायता

बनाना

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

स्थापित करें

यह कमांड सीधे एप्लिकेशन को कॉन्फ़िगरेशन चरण में निर्दिष्ट निर्देशिका में इंस्टॉल करता है; मेक इंस्टॉल कमांड निष्पादित करने के बाद, आप नए इंस्टॉल किए गए प्रोग्राम को चला सकते हैं।

अंतभाषण

तीन आदेशों को एक-एक करके न लिखने के लिए, आप उन्हें एक पंक्ति में लिख सकते हैं:

./कॉन्फ़िगर करें && बनाएं && इंस्टॉल करें

&& - यह AND ऑपरेटर है, जो C/C++ भाषा से आया है, हालांकि, शेल के दृष्टिकोण से, इसका मतलब है कि अगले कमांड को केवल तभी निष्पादित करने की आवश्यकता है जब पिछला कमांड सफलतापूर्वक पूरा हो गया हो, यह बहुत सुविधाजनक है यदि कोई चरणों का अंत त्रुटि के साथ होता है.

वास्तव में, मेक इंस्टॉल एक बिल्ड भी कर सकता है, क्योंकि इंस्टॉल कार्य सभी कार्यों पर निर्भर करता है (अर्थात, सीधे एप्लिकेशन का निर्माण करना), इसका मतलब है कि मेक चरण को छोड़ दिया जा सकता है और यदि आप उन्हें लिखते हैं तो केवल दो कमांड निष्पादित किए जा सकते हैं एक पंक्ति पर:

./कॉन्फ़िगर करें && इंस्टॉल करें

आप सौभाग्यशाली हों! और पढ़ने के लिए धन्यवाद!

और अन्य सिस्टम भी लगाने होंगे अतिरिक्त कार्यक्रम. में ऑपरेटिंग सिस्टमविंडोज़ पर सब कुछ बहुत सरल है, एक नियम के रूप में setup.exe नामक एक इंस्टॉलर होता है जो सॉफ़्टवेयर इंस्टॉल करने में मदद करता है। लेकिन लिनक्स में चीजें थोड़ी अलग हैं। लिनक्स पर प्रोग्राम कैसे इंस्टॉल करें?अब आइए इस प्रश्न पर नजर डालें।

लिनक्स में कई प्रकार के इंस्टॉलेशन पैकेज होते हैं और प्रत्येक वितरण का अपना पैकेज प्रारूप होता है। फेडोरा, मैंड्रिवा, रेड हैट और सुसे वितरण का उपयोग करते हैं मानक स्थापना Linux RPM के लिए, Red Hat द्वारा विकसित। RPM पैकेज फ़ाइल को सामान्यतः नाम दिया गया है प्रोग्राम_नाम-संस्करण.आरपीएम।

एक और बहुत लोकप्रिय प्रारूप DEB है। डेबियन, उबंटू, नोपिक्स और मेपिस में उपयोग किया जाता है। एक नाम है प्रोग्राम_नाम-संस्करण.डेब।

और हमने अभिलेखागार से संपर्क किया। आमतौर पर ये .tar , .tar.gz , .tgz एक्सटेंशन होते हैं। उन्हें अनपैक किया जाना चाहिए और फिर स्थापित/संकलित किया जाना चाहिए।

आपको प्रोग्राम इंस्टालेशन प्रक्रिया को सुपरयूजर के रूप में निष्पादित करने की आवश्यकता है।

त्वरित नेविगेशन

डेबियन, उबंटू पर प्रोग्राम इंस्टॉल करना

DEB पैकेज के साथ काम करने के लिए कई उपकरण हैं, लेकिन सबसे अधिक इस्तेमाल किया जाने वाला उपकरण apt-get है, जो उपकरणों के मानक सेट में शामिल है। एप्लिकेशन इंस्टॉल करने के लिए, कमांड दर्ज करें:

उपयुक्त-इंस्टॉल पैकेज_नाम प्राप्त करें

हटाने के लिए:

उपयुक्त-पैकेज_नाम हटाएं

एपीटी इंस्टालेशन के लिए उपलब्ध सभी पैकेजों का एक स्थानीय डेटाबेस संग्रहीत करता है और उन्हें कहां से प्राप्त करना है इसके लिंक भी संग्रहीत करता है। इस डेटाबेस को समय-समय पर कमांड के साथ अद्यतन करने की आवश्यकता है:

उपयुक्त-अद्यतन प्राप्त करें

कंप्यूटर पर पुराने पैकेजों (प्रोग्रामों) को अपडेट करने के लिए निम्नलिखित कमांड टाइप करें:

उपयुक्त-अद्यतन प्राप्त करें; उपयुक्त-अपग्रेड प्राप्त करें

फेडोरा, रेड हैट पर प्रोग्राम इंस्टॉल करना

एपीटी के समान एक उपयोगिता यम है। कॉन्फ़िगर रिपॉजिटरी से पैकेज को डाउनलोड और इंस्टॉल करने के लिए, कमांड लिखें:

यम पैकेज_नाम इंस्टॉल करें

यम पैकेज_नाम हटा दें

स्थानीय यम डेटाबेस सहेजा नहीं गया है, इसलिए अद्यतन करने की कोई आवश्यकता नहीं है। अद्यतन स्थापित करने के लिए, कमांड का उपयोग करें:

यम अद्यतन

अद्यतन करने के लिए कुछ विशिष्ट चुनें:

यम अद्यतन पैकेज_नाम

मैनड्रिवा में प्रोग्राम इंस्टाल करना

मैनड्रिवा के पास पैकेजों के साथ काम करने के लिए उपकरणों का अपना सेट है, जिसे यूआरपीएमआई कहा जाता है। स्थापना के लिए:

यूआरपीएमआई पैकेज_नाम

हटाना:

urpme package_name

पैकेजों की सूची के साथ स्थानीय डेटाबेस को अद्यतन करें:

urpmi. अद्यतन -ए

अद्यतन स्थापित करने के लिए:

यूआरपीएमआई--स्वतः-चयन

अभिलेखागार (टारबॉल) से प्रोग्राम स्थापित करना

GZIP (gz, gz2, आदि) का उपयोग करके संपीड़ित अभिलेखागार के लिए हम यह करते हैं:

tar -xvz f फ़ाइल नाम

BZIP (bz, bz2, आदि) का उपयोग करके संपीड़ित अभिलेखागार के लिए यह थोड़ा अलग है:

tar -xvjf फ़ाइल नाम

टार आदेश:

  • x - संग्रह से फ़ाइलें निकालें;
  • वी - स्क्रीन पर जानकारी का विस्तृत प्रदर्शन;
  • एफ – आवश्यक विकल्प. यदि निर्दिष्ट नहीं है, तो टार फ़ाइल के बजाय टेप का उपयोग करने का प्रयास करेगा;
  • z - gzip का उपयोग करके संपीड़ित प्रक्रिया संग्रह;
  • j - bzip का उपयोग करके संपीड़ित संग्रह को संसाधित करें।

कमांड निष्पादित करने के बाद, पैकेज के नाम के समान नाम वाला एक फ़ोल्डर बनाया जाएगा। फिर आपको इस बनाए गए फ़ोल्डर को कमांड के साथ खोलना होगा:

सीडी फ़ोल्डर_नाम

इसके बाद, अनपॅक किए गए संग्रह में, README फ़ाइल में निर्देश पढ़ें, यदि कोई हो। किसी भी स्थिति में, यदि प्रोग्राम को निष्पादन योग्य फ़ाइल के रूप में संकलित किया गया है, तो पैकेज में एक .sh फ़ाइल होगी, जिसे आमतौर पर install.sh कहा जाता है

ब्रांस्क लिनक्स उपयोगकर्ता समूह और www.rm.pp.ru से सामग्री

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

  1. टिप्पणी
  2. पैच लागू
  3. कर्नेल विन्यास
  4. कर्नेल का संकलन
  5. एक नया कर्नेल स्थापित करना
  6. समस्या
  7. लिंक

टिप्पणी

कर्नेल को असेंबल करने की दो विधियों का वर्णन किया जाएगा। पहला विकल्प .deb पैकेजों को असेंबल करने के लिए वर्णित किया जाएगा जिन्हें आपके या किसी अन्य सिस्टम पर इंस्टॉल किया जा सकता है। दूसरी विधि तथाकथित "पारंपरिक" तरीका है।

विधि एक. कर्नेल को .deb पैकेज में बनाना

कर्नेल को संकलित करने के लिए आवश्यक पैकेज स्थापित करना

सबसे पहले, आइए पैकेज सूचियों को अपडेट करें:

# उपयुक्त-अपडेट प्राप्त करें

आइए वे पैकेज स्थापित करें जिनकी हमें आवश्यकता है:

# apt-get install कर्नेल-पैकेज libncurses5-dev फ़ेकरूट wget bzip2 बिल्ड-एसेंशियल

कर्नेल स्रोत डाउनलोड करें

/usr/src निर्देशिका पर जाएँ, www.kernel.org पर जाएँ और वांछित कर्नेल संस्करण चुनें। इस मामले में, संस्करण linux-2.6.23.1.tar.bz2 पर विचार किया जाएगा। डाउनलोड करना:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

आइए स्रोतों को खोलें और एक प्रतीकात्मक लिंक बनाएं:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (पिछला सिम्लिंक हटा दें) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

पैच लागू

इसे वैकल्पिक रूप से या अनावश्यक रूप से न करें!

कभी-कभी ऐसे ड्राइवर या टूल की आवश्यकता होती है जो मौजूदा कर्नेल में समर्थित नहीं होते हैं, उदाहरण के लिए वर्चुअलाइजेशन तकनीक या अन्य अन्य विशिष्टताएँ जो वर्तमान रिलीज़ में नहीं हैं। किसी भी मामले में, इसे तथाकथित पैच (यदि कोई हो) लगाकर ठीक किया जा सकता है।

तो, मान लीजिए कि आपने आवश्यक पैच (उदाहरण के लिए, इसे patch.bz2 कहते हैं) /usr/src पर डाउनलोड कर लिया है। आइए डाउनलोड किए गए पैच को हमारे स्रोतों पर लागू करें (आपको अभी भी /usr/src/linux निर्देशिका में होना चाहिए):

# bzip2 -dc /usr/src/patch.bz2 | पैच -पी1 --ड्राई-रन # bzip2 -dc /usr/src/patch.bz2 | पैच -पी1

पहला आदेश केवल एक परीक्षण है और स्रोतों पर कोई परिवर्तन लागू नहीं किया जाएगा। यदि पहले आदेश के बाद कोई त्रुटि नहीं हुई, तो आप पैच लागू करने के लिए दूसरा आदेश चला सकते हैं। यदि पहले आदेश के बाद त्रुटियाँ उत्पन्न हुई हों तो किसी भी परिस्थिति में आपको दूसरा आदेश निष्पादित नहीं करना चाहिए!

इस तरह आप कर्नेल स्रोतों पर पैच लागू कर सकते हैं। उदाहरण के लिए, कुछ विशेषताएं हैं जो केवल 2.6.23.8 कर्नेल में उपलब्ध हैं, और स्रोत कोड में आवश्यक कार्यक्षमता नहीं थी, लेकिन पैच-2.6.23.8.bz2 जारी किया गया था। आप इस पैच को 2.6.23 कर्नेल स्रोतों पर लागू कर सकते हैं, लेकिन 2.6.23.1 या 2.6.23.3 आदि पर नहीं। आप इसके बारे में यहां अधिक पढ़ सकते हैं:

उपसर्ग (प्रीपैच) - अल्फा रिलीज के बराबर; पैच को 3-अंकीय संस्करण के साथ संपूर्ण पिछली रिलीज़ के स्रोतों पर लागू किया जाना चाहिए (उदाहरण के लिए, पैच 2.6.12-आरसी4 को संस्करण 2.6.11 के स्रोतों पर लागू किया जा सकता है, लेकिन संस्करण 2.6.11.10 पर नहीं।)

इसका मतलब है, अगर हम कर्नेल 2.6.23.8 बनाना चाहते हैं, तो हमें संस्करण 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23) के स्रोतों को डाउनलोड करना होगा .tar.gz) दूसरी विधि "पारंपरिक" तरीके से लागू की गई!

कर्नेल 2.6.23 पर पैच-2.6.23.8.bz2 लागू करें:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/पैच-2.6.23.8.bz2 | पैच -पी1 --ड्राई-रन # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | पैच -पी1

कर्नेल विन्यास

मौजूदा का उपयोग करना एक अच्छा विचार है विन्यास फाइलकार्यशील कर्नेल और नए के लिए। इसलिए, हम मौजूदा कॉन्फ़िगरेशन को /usr/src/linux पर कॉपी करते हैं:

# साफ करें और mrproper बनाएं # cp /boot/config-`uname -r` ./.config # मेनूकॉन्फिग बनाएं

जिसके बाद यह लोड हो जाएगा ग्राफ़िक मेनूकर्नेल विन्यास. कॉन्फ़िगरेशन मेनू में "वैकल्पिक कॉन्फ़िगरेशन फ़ाइल लोड करें" आइटम का चयन करें और "ओके" पर क्लिक करें। फिर (यदि आवश्यक हो) मेनू के माध्यम से नेविगेट करके कर्नेल कॉन्फ़िगरेशन में आवश्यक परिवर्तन करें (कर्नेल कॉन्फ़िगरेशन विवरण www.google.com पर पाया जा सकता है)। जब आप समाप्त करते हैं और "बाहर निकलें" पर क्लिक करते हैं, तो प्रश्न "क्या आप अपना नया कर्नेल कॉन्फ़िगरेशन सहेजना चाहते हैं?" पूछा जाएगा, सकारात्मक "हां" में उत्तर दें।

कर्नेल का संकलन

कर्नेल का निर्माण केवल दो कमांड में किया जाता है:

# मेक-केपीकेजी क्लीन # फेकरूट मेक-केपीकेजी --इनिटर्ड --एपेंड-टू-वर्जन=-साइबरमाइंड कर्नेल_इमेज कर्नेल_हेडर्स

--append-to-version= के बाद, आप अपनी पसंद का कोई भी नाम लिख सकते हैं, लेकिन यह ऋण चिह्न (-) से शुरू होना चाहिए और इसमें कोई रिक्त स्थान नहीं होना चाहिए।

.deb पैकेजों को संकलित करने और बनाने की प्रक्रिया में काफी लंबा समय लग सकता है। सब कुछ कर्नेल कॉन्फ़िगरेशन और आपके प्रोसेसर की क्षमताओं पर निर्भर करेगा।

Initrd.img बनाने में समस्या का समाधान

हाल ही में, डेबियन में एक बग सामने आया है, जिसमें यहां वर्णित विधि का उपयोग करके इकट्ठे किए गए कर्नेल के साथ पैकेज स्थापित करने के बाद, संबंधित /boot/initrd.img फ़ाइल नहीं बनाई गई है। पहले से स्थापित कर्नेल के लिए इसे ठीक करने के लिए, आपको मैन्युअल रूप से initrd.img बनाना होगा:

अद्यतन-initramfs -c -k<полная-версия-ядра>

समस्या को "भविष्य के लिए" हल करने के लिए, जैसा कि दिखाया गया है, फ़ाइल /etc/kernel/postinst.d/initramfs-tools में नीचे उद्धृत पंक्तियों में से दूसरी पंक्ति में टिप्पणी करें:

# कर्नेल-पैकेज एक अतिरिक्त आर्ग पास करता है; कर्नेल-पैकेज #[ -z "$2" ] || के अंतर्गत नहीं चलने के लिए हैक करें बाहर निकलें 0

एक नया कर्नेल स्थापित करना

जब कर्नेल निर्माण सफलतापूर्वक पूरा हो जाता है, तो /usr/src निर्देशिका में दो .deb पैकेज बनाए जाएंगे:

# सीडी /यूएसआर/एसआरसी # एलएस -एल

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - वास्तविक कर्नेल और linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - हेडर अन्य मॉड्यूल बनाने के लिए कर्नेल की आवश्यकता होती है (उदाहरण के लिए, मॉड्यूल बनाते समय एनवीडिया ड्राइवर). उन्हें स्थापित करें:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb

(ये पैकेज अब किसी अन्य सिस्टम पर इंस्टॉल किए जा सकते हैं और इन्हें दोबारा बनाने की कोई आवश्यकता नहीं होगी।)

बस, इंस्टॉलेशन पूरा हो गया है, बूटलोडर मेनू, एक नई रैम डिस्क और कर्नेल की स्थापना स्वचालित रूप से हो जाएगी। जो कुछ बचा है वह रीबूट करना है:

# रिबूट

विधि दो. "पारंपरिक तरीका

हम "कर्नेल संकलन" बिंदु से पहले ऊपर वर्णित सभी बिंदुओं को पूरा करते हैं।

# सभी बनाएं # मॉड्यूल बनाएं_इंस्टॉल करें # इंस्टॉल करें

हमेशा की तरह, कर्नेल कॉन्फ़िगरेशन और प्रोसेसर क्षमताओं के आधार पर निर्माण में लंबा समय लग सकता है।

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

# सब बनाओ # डेब-पीकेजी बनाओ

दो .deb फ़ाइलें स्रोत निर्देशिका से एक स्तर ऊपर निर्देशिका में दिखाई देंगी। मैंने कर्नेल को /usr/src/linux-2.6.27.10 निर्देशिका में इकट्ठा किया और फ़ाइलें /usr/src/ निर्देशिका में दिखाई दीं

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-फर्मवेयर-image_2.6.27.10-1_all.deb

कर्नेल को कमांड के साथ स्थापित किया गया है

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

पुरानी गुठली को हटाया जा सकता है, उदाहरण के लिए, सिनैप्टिक"ए से

अगले कदम

कर्नेल को संकलित और स्थापित किया गया है, लेकिन अब आपको एक रैम डिस्क बनाने की आवश्यकता है (जिसके बिना कर्नेल बस बूट नहीं होगा) और आपको GRUB बूट लोडर को अपडेट करने की आवश्यकता है। ऐसा करने के लिए, निम्नलिखित कार्य करें:

# डिपमोड 2.6.23.1 # उपयुक्त-यार्ड स्थापित करें

RAM डिस्क स्थापित करें:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

आइए बूटलोडर को आसानी से और दर्द रहित तरीके से अपडेट करें:

# अपडेट-ग्रब

बस, बूटलोडर और नया कर्नेल तैयार है, जो कुछ बचा है वह रीबूट करना है:

# रिबूट

समस्या

यदि, रिबूट करने के बाद, आपके द्वारा चुना गया नया कर्नेल लोड नहीं होता है, तो रिबूट करें और अपने पिछले कर्नेल का चयन करें और आप एक कार्यशील कर्नेल बनाने के लिए पूरी प्रक्रिया को फिर से करने का प्रयास कर सकते हैं। इस स्थिति में, /boot/grub/menu.lst में गैर-कार्यशील कर्नेल की पंक्तियों को हटाना न भूलें।

अक्सर आवश्यक पैकेज केवल स्रोत रूप में ही पाए जा सकते हैं; यह आलेख स्रोत कोड से पैकेज स्थापित करने की एक विधि का वर्णन करता है।

बॉक्स से निकालना

प्रोग्राम आमतौर पर पैक किए गए अभिलेखागार में वितरित किए जाते हैं, ये एक्सटेंशन वाली फ़ाइलें हैं

.tar.gz (कभी-कभी .tgz) .tar.bz2

आपको आर्काइवर और पैकर के बीच अंतर को समझने की जरूरत है।

प्रोग्राम का उपयोग निर्देशिकाओं और फ़ाइलों को संग्रहीत करने के लिए किया जाता है टार; इसके कार्य का परिणाम एक्सटेंशन वाली एक फ़ाइल है ।टार. मोटे तौर पर कहें तो यह एक प्रति है फाइल सिस्टम- निर्देशिकाएं और फ़ाइलें उनकी विशेषताओं और पहुंच अधिकारों के साथ, एक फ़ाइल में रखी गई हैं।

यह फ़ाइल संग्रहीत फ़ाइलों के कुल आकार से थोड़ी बड़ी होगी। इसलिए (या शायद किसी अन्य कारण से) वे पैकर्स - प्रोग्राम का उपयोग करते हैं जो आपको डेटा खोए बिना फ़ाइल का आकार कम करने की अनुमति देते हैं।

कार्यक्रम टारअनपैक कर सकते हैं, इसलिए कॉल करने की आवश्यकता नहीं है गनज़िप, या आप बस प्रोग्राम बता सकते हैं टारकि फ़ाइल को पहले अनपैक किया जाना चाहिए। उदाहरण के लिए, आदेश

टार -xvf< some_app_name>.tar.gz

तुरंत अनपैक और अनज़िप कर देगा। फ़ाइलों और एक्सटेंशन के बीच अंतर

.tar.gz

.tar.bz2

केवल यह कि विभिन्न पैकर्स का उपयोग किया गया था, प्रोग्राम टारसंपीड़न विधि को स्वचालित रूप से निर्धारित करता है और इस मामले में किसी अतिरिक्त विकल्प की आवश्यकता नहीं होती है।

अनपैक करने के बाद, आपको परिणामी निर्देशिका पर जाना होगा; नीचे वर्णित सभी कमांड पैकेज के स्रोत कोड के साथ निर्देशिका में निष्पादित होते हैं।

सीडी< имя_пакета>*

पैकेज का निर्माण

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

निर्माण के लिए हमें कंपाइलरों की आवश्यकता है: वे पैकेज निर्भरता में निर्दिष्ट हैं निर्माण आवश्यक, इसलिए इसे सभी निर्भरताओं के साथ स्थापित करना पर्याप्त है। अभी भी जरूरत है autoconfऔर स्वचालित बनाना.

तो, स्रोत से कुछ बनाने के लिए, आपको सबसे पहले एक विन्यासकर्ता बनाना होगा; कॉन्फिगरेटर का निर्माण कैसे करें, इसका वर्णन config.in फ़ाइल में किया गया है। विन्यासकर्ता बनाने के लिए आपको चलाने की आवश्यकता है

./ बूटस्ट्रैप ./ autogen.sh

यदि संग्रह में ऐसी कोई स्क्रिप्ट नहीं है, तो आप निम्न आदेशों को क्रम से चला सकते हैं:

एक्लोकल ऑटोहेडर ऑटोमेक --gnu --ऐड-मिसिंग --कॉपी --विदेशी ऑटोकॉन्फ़ -f -वॉल

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

./ कॉन्फ़िगर करें

विन्यासकर्ता प्राप्त ज्ञान और फ़ाइल के आधार पर एक मेकफ़ाइल बनाएगा मेकफ़ाइल.am. आप प्रोग्राम स्रोतों में दिए गए विकल्पों को कॉन्फिगरेटर के पास भेज सकते हैं, जो आपको कुछ प्रोग्राम सुविधाओं को सक्षम/अक्षम करने की अनुमति देते हैं; आमतौर पर आप कमांड के साथ उनके बारे में पता लगा सकते हैं

./कॉन्फ़िगर --मदद

जैसे मानक विकल्पों का एक सेट भी है

उपसर्ग=

जो निर्दिष्ट करता है कि इंस्टालेशन के लिए किस निर्देशिका का उपयोग करना है। आमतौर पर उबंटू के लिए

--उपसर्ग =/ यूएसआर --उपसर्ग =/ यूएसआर/ स्थानीय

बिनाअंत में काट दो! अब आप कमांड से ही प्रोग्राम बनाने की प्रक्रिया शुरू कर सकते हैं

बनाना

निर्माण के लिए पर्याप्त विशेषाधिकार नियमित उपयोगकर्ता. बिल्ड के अंत को वह क्षण माना जा सकता है जब कंसोल में कमांड "यादृच्छिक रूप से" निष्पादित होना बंद हो जाते हैं और कोई शब्द नहीं होता है गलती. अब सब कुछ संकलित है और इंस्टॉलेशन के लिए तैयार है।

इंस्टालेशन

प्रयासों पर खर्च किया गया सही स्थापनाभविष्य में, इंस्टॉल किए गए सॉफ़्टवेयर को अनइंस्टॉल करने या अपडेट करने की स्थिति में उन्हें स्वयं के लिए अधिक भुगतान करना होगा।

सही स्थापना(विकल्प संख्या 1)

उपयोगिता का उपयोग करके स्थापना स्थापना जाँचें. स्थापित करने के लिए:

sudo apt-get install checkinstall

ऋण यह विधि: स्थापना जाँचेंसभी स्रोतों को नहीं समझता है, क्योंकि प्रोग्राम लेखक विशेष इंस्टॉलेशन स्क्रिप्ट लिख सकता है और स्थापना जाँचेंउन्हें समझ नहीं पाओगे.

डिबेट पैकेज बनाने और स्थापित करने के लिए आपको चलाने की आवश्यकता है

सुडो चेकइंस्टाल

सही स्थापना (विकल्प संख्या 2)

शीघ्रता से मैन्युअल रूप से एक डिबेट पैकेज बनाएं।

से मुख्य अंतर पिछली विधिइस मामले में आप मैन्युअल रूप से पैकेज बनाते हैं और आपके द्वारा किए गए सभी परिवर्तनों को ट्रैक करते हैं। यदि स्रोत पैकेज बनाने का समर्थन नहीं करते हैं तो यह विधि भी आपके लिए उपयुक्त होगी स्थापना जाँचें.

    हम एक अस्थायी निर्देशिका में स्थापित करते हैं, जहां हमें स्थापित फ़ाइलों का पूरा सेट मिलता है:

फ़ेकरूट DESTDIR=`pwd`/tempinstall स्थापित करें

    आइए "पैकेज रूट" में एक DEBIAN निर्देशिका बनाएं और उन सभी फ़ाइलों की एक सूची जोड़ें जिन्हें /etc में DEBIAN/conffiles में जाना चाहिए:

सीडी टेम्पइंस्टॉल एमकेडीआईआर डेबियन फाइंड आदि | sed "s/^/\//" > DEBIAN/ conffiles

    फिर हम निम्नलिखित सामग्री के साथ एक DEBIAN/नियंत्रण फ़ाइल बनाते हैं:

पैकेज: पैकेज_नाम संस्करण: 1.2.3 आर्किटेक्चर: एएमडी64/आई386/आर्मेल/सभी अनुरक्षक: आप अपना नाम दर्ज कर सकते हैं, आप बकवास कर सकते हैं, लेकिन यदि आप इसे खाली छोड़ देते हैं, तो डीपीकेजी शपथ लेगा निर्भर करता है: यहां आप पैकेजों की एक सूची दर्ज कर सकते हैं कॉमा द्वारा अलग। प्राथमिकता: वैकल्पिक विवरण: आपको कुछ दर्ज करने की भी आवश्यकता है ताकि कोई चेतावनी न हो

    यदि आवश्यक हो, तो आप वहां प्रीइंस्ट, पोस्टइंस्ट, प्रीर्म और पोस्टआरएम स्क्रिप्ट भी बना सकते हैं।

    हम एक डिबेट पैकेज बनाते हैं, जिसके लिए हम निष्पादित करते हैं:

डीपीकेजी-बी टेंपइंस्टॉल

    आउटपुट tempinstall.deb है, जिसे हम इंस्टॉल करते हैं

sudo dpkg -i tempinstall.deb

स्थापना (विकल्प संख्या 3)

ग़लत स्थापना

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

इंस्टॉल करने के लिए आपको यह करना होगा

सुडो स्थापित करें

इस पद्धति का उपयोग करके स्थापित पैकेज को हटाने के लिए, आपको इसे प्रोग्राम के स्रोतों की रूट निर्देशिका में निष्पादित करना होगा (जहां आपने मेक इंस्टॉल चलाया था)।

सुडो अनइंस्टॉल करें

त्रुटियाँ

अक्सर कॉन्फ़िगरेशन चरण में, कॉन्फ़िगरेशनकर्ता रिपोर्ट करता है कि एक विशेष लाइब्रेरी गायब है। यह जिस लाइब्रेरी नाम की रिपोर्ट करता है वह हमेशा उबंटू में पैकेज नाम से मेल नहीं खाता है। अपने स्वयं के अनुभव से, मैं आपको लिब उपसर्ग को छोड़कर, आवश्यक पैकेज के लिए सिनैप्टिक खोजने की सलाह दे सकता हूं। यदि आपको कई पैकेज मिलते हैं जो नाम में उपसर्ग -dev से भिन्न हैं, तो आपको -dev पैकेज स्थापित करने की आवश्यकता है (आमतौर पर यह इसमें एक गैर-डेवलप पैकेज भी शामिल है)। आप पैकेज सामग्री की खोज में लाइब्रेरी का नाम दर्ज करके http://packages.ubuntu.com/ का उपयोग करके भी खोज कर सकते हैं, इसी तरह, यदि आपको देव और गैर-देव मिलते हैं, तो आपको दोनों की आवश्यकता होगी। अच्छा, या बस Google पर खोजें।

आवश्यक सॉफ्टवेयर

विवरण के अंत में मिमी वाले पैकेज C++ प्रोग्राम के लिए पैकेज हैं। bmpx के लिए सूची, लेकिन लगभग किसी भी GTK2/Gnome प्रोग्राम के लिए उपयुक्त। इसलिए यदि आप इसे असेंबल नहीं कर सकते हैं, तो इस सूची को देखें और जो आपने इंस्टॉल किया है उससे इसकी तुलना करें।

संकलित करें:रनटाइम:
एक्सlibx11-devlibx11-6
ग्लिबएमएमlibglibmm-2.4-devlibglibmm-2.4-1c2a
जीटीके+libgtk2.0-dev,gtk-doc-toolslibgtk2.0-0
जीटीकेएमएमlibgtkmm-2.4-devlibgtkmm-2.4-1c2a
वृक्षों से खाली जगहlibglade2-devlibglade2-0
ग्लेडएमएमlibglademm-2.4-devlibglademm-2.4-1c2a
एक्सएमएलlibxml2-devlibxml2
एक्सएमएल++libxml++2.6-devlibxml++2.6c2a
डीबसलिबडीबस-1-देव,लिबडीबस-ग्लिब-1-देवलिबडीबस-1-2,लिबडीबस-ग्लिब-1-2
अलसाlibasound2-devlibasound2
एचएएललिभल-देव, लिभल-भंडारण-देवlibhal1,libhal-storage1
परित्यक्त बालकlibgamin-devlibgamin0
नियोनlibneon25-devlibneon25
टैगलिबlibtagc0-devlibtagc0
स्टार्टअप-सूचित करेंlibstartup-अधिसूचना0-devlibstartup-अधिसूचना0
बढ़ानाlibboost-dev,libboost-filesystem-devlibboost-filesystem1.33.1
म्यूज़िकlibmusicbrainz4-devlibmusicbrainz4c2a
जीस्ट्रीमरlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0,libgstreamer-प्लगइन्स-बेस0.10-0


मित्रों को बताओ