कार्यकारी सारांश
आप शायद नामक पैकेज को स्थापित करना चाहते हैं linux-headers-generic
।
चल रहा है, तो uname -r
आप के अलावा कुछ देता है generic
के लिए के बाद संस्करण संख्या, कि स्थानापन्न generic
में linux-headers-generic
। (यह कुछ उबंटू रिलीज के इंस्टॉलेशन पर server
या हो सकता है generic-pae
, और कुछ अन्य सामयिक कर्नेल "फ्लेवर्स" हैं।
चूंकि आपको इसकी सबसे अधिक संभावना है, ताकि आप एक ड्राइवर का निर्माण कर सकें (जो स्वचालित हो सकता है, आप "इसे स्वयं निर्माण नहीं कर सकते"), यह स्थापित करने के लिए एक अच्छा विचार है build-essential
इसे भी करने के लिए ताकि आपको संभवतः सभी आवश्यक उपकरण मिल सकें। ।
पूर्ण व्याख्या
मेरी जानकारी के अनुसार, किसी भी ऑपरेटिंग सिस्टम में पैकेज नहीं है Linux-kernel-devel
। ऐसा दो कारणों से है:
- बड़े अक्षरों से शुरू होने वाले पैकेज के नाम किसी भी यूनिक्स जैसे ओएस के लिए अत्यंत दुर्लभ हैं।
- जीएनयू / लिनक्स ऑपरेटिंग सिस्टम आमतौर पर अपने कर्नेल-संबंधित पैकेजों को नाम देते हैं ताकि नामों में कर्नेल या शब्द लिनक्स शामिल हों , लेकिन दोनों नहीं। (उबंटू पर, यह शब्द लिनक्स है ।)
यह उन प्रणालियों पर कर्नेल-संबंधित पैकेजों के लिए सामान्य है जो Red Hat पैकेज मैनेजर ( rpm
) और संबंधित उपयोगिताओं kernel
का उपयोग उनके पैकेज के नाम पर करते हैं। उदाहरण के लिए, मागिया में कई पैकेज हैं जिनके नाम के साथ शुरू kernel
और अंत होता है devel
। ये पैकेज लगभग हमेशा (माजिया और उनके पास मौजूद किसी भी ओएस पर) कर्नेल के उपयोग के लिए स्रोत से ड्राइवरों को बनाने के लिए आवश्यक हेडर फाइलें प्रदान करते हैं । वे सुविधा के लिए संबंधित उपयोगिताओं को भी प्रदान कर सकते हैं। ये पैकेज:
- करते नहीं गिरी का पूर्ण स्रोत कोड प्रदान करते हैं। यह अन्य पैकेजों द्वारा प्रदान किया गया है।
- है न एक पूर्व संकलित, प्रयोग करने योग्य कर्नेल प्रदान करते हैं। यह अन्य पैकेजों द्वारा प्रदान किया गया है।
- है न एक संकलक या सबसे अन्य उद्देश्य निर्माण उपकरण प्रदान करते हैं। वे भी, अन्य पैकेजों द्वारा प्रदान किए जाते हैं।
उबंटू में, जैसा कि यहां दी गई सूची में देखा जा सकता है , कर्नेल हेडर प्रदान करने वाले पैकेज में नाम होते हैं जो इसके साथ शुरू होते हैं linux-headers
। आमतौर पर स्थापित करने के लिए सही पैकेज है linux-headers-generic
। हालाँकि, यह सुनिश्चित करने के लिए कि वर्तमान में चल रहे कर्नेल के अनुरूप शीर्ष लेख प्राप्त करने के लिए कौन से पैकेज को संस्थापित करें:
uname -r
आपको आउटपुट मिलेगा जो कुछ इस तरह दिखता है:
3.5.0-36-generic
यही है, आपके पास एक संस्करण संख्या होगी (जिसमें .
वर्ण शामिल होंगे और आमतौर पर कम से कम एक -
), उसके बाद ए-
बाद एक या एक से अधिक शब्द होंगे जो यह दर्शाता है कि आप किस प्रकार का कर्नेल चला रहे हैं।
यदि आप अभी चाहते हैं कि आपके द्वारा चलाए जा रहे विशिष्ट संस्करण के लिए हेडर, आप उस पैकेज को स्थापित कर सकते हैं जिसका नाम वह है linux-headers-*
जहां *
पूर्ण आउटपुट द्वारा प्रतिस्थापित किया गया है uname -r
। उदाहरण के लिए, मेरे सिस्टम पर, मैं चला सकता था:
sudo apt-get update && sudo apt-get install linux-headers-3.5.0-36-generic
मैं इसे स्वचालित भी कर सकता था:
sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
ये दृष्टिकोण समान हैं, लेकिन वे आमतौर पर जाने का सबसे अच्छा तरीका नहीं हैं।
इसके बजाय, आप आमतौर पर रूपक को स्थापित करना चाहेंगे जो हमेशा नवीनतम कर्नेल हेडर को अद्यतन के रूप में प्रदान करता है (जो भी हेडर पैकेज नवीनतम है, उसके आधार पर)। यह आपके संकलित, चलने वाले कर्नेल को स्थापित करने और अद्यतन करने के तरीके को समानता देता है। ऐसा करने के लिए, संस्करण संख्या के बाद के uname -r
आउटपुट के भाग को देखें । यही है, अगर आपको देता है, तो बस ले लोuname -r
3.5.0-36-generic
generic
हिस्सा लें।
तब पैकेज बुलाया स्थापित linux-headers-*
जहां *
वह हिस्सा बन जाता है। इसलिए, मेरे सिस्टम पर, यह होगा linux-headers-generic
और एक तरीका जिसे मैं स्थापित कर सकता हूं वह होगा चलाने के लिए:
sudo apt-get update && sudo apt-get install linux-headers-generic
ज्यादातर लोगों के लिए यह है linux-headers-generic
, लेकिन Ubuntu क्या रिलीज आप चला रहे हैं, क्या वास्तुकला और प्रकार डिवाइस की आप उस पर चल रहे हैं, और यह कैसे स्थापित किया है और कॉन्फ़िगर किया गया है के आधार पर, अन्य संभावनाओं में शामिल generic-pae
, highbank
, omap
, server
, और virtual
।
संबंधित पैकेज
हैडर फाइलें सॉफ्टवेयर के विकास और संकलन / निर्माण की सुविधा प्रदान करती हैं, सॉफ्टवेयर द्वारा प्रदान की जाने वाली सुविधाओं का उपयोग करती हैं जिनकी हेडर फाइलें उपयोग की जा रही हैं। यदि आपको कर्नेल हेडर की आवश्यकता हो सकती है तो सबसे आम कारण है यदि आप स्रोत कोड से ड्राइवर (कर्नेल मॉड्यूल) बनाने जा रहे हैं। VMware और VirtualBox जैसे कुछ एप्लिकेशन को कभी-कभी इसकी आवश्यकता होगी, और बिल्ड को स्वचालित रूप से स्वचालित करेगा।
हेडर फ़ाइलों के अलावा, सॉफ्टवेयर बनाने के लिए एक कंपाइलर और अन्य उपकरणों की आवश्यकता होती है। आपके पास आवश्यक उपकरण होने की संभावना को अधिकतम करने के लिए, build-essential
पैकेज को भी स्थापित करना एक अच्छा विचार है ।
वास्तविक पूर्ण कर्नेल स्रोत कोड की आवश्यकता किसी के लिए भी असामान्य है (जब तक, निश्चित रूप से, आप स्रोत से अपना कर्नेल बनाने की योजना बना रहे हों)। लेकिन अगर आपको इसकी आवश्यकता है, तो आपको एक और पैकेज भी स्थापित करना होगा। उबंटू में पूर्ण कर्नेल स्रोत कोड के लिए पैकेज कहा जाता है linux-source
। (यह नामकरण संकुल के डेबियन / उबंटू सम्मेलन को ध्यान में रखते हुए है जो लिनक्स कर्नेल के linux
बजाय इसके पुर्जे प्रदान करते हैं kernel
।)
इफ यू स्टिल है ट्रबल
यदि आप इनमें से किसी भी पैकेज को स्थापित करने की कोशिश करते हैं, लेकिन समस्याओं का अनुभव करते हैं, और आप मदद चाहते हैं, तो आपको टर्मिनल से पूर्ण और सटीक पाठ को उन पंक्तियों सहित शामिल करना होगा, जहाँ आपने कमांड टाइप की थी। इसे प्रदान करने का सबसे अच्छा तरीका यह है कि आप अपने प्रश्न को संपादित करें, लेकिन अगर यह बहुत लंबा है, तो आप इसे http://paste.ubuntu.com की तरह कहीं भी पेस्ट कर सकते हैं और हमें वह URL प्रदान कर सकते हैं जहाँ हम इसे एक्सेस कर सकते हैं।
यदि आप इस प्रश्न पर टिप्पणी करते हैं, तो मुझे सूचित किया जाएगा। आप अपने प्रश्न को संपादित कर सकते हैं और अपने प्रश्न में दी गई जानकारी पर ध्यान देने के लिए यहाँ टिप्पणी भी कर सकते हैं। (महत्वपूर्ण जानकारी को सवाल और जवाब में सबसे अच्छा रखा जाता है।) शुभकामनाएँ!