12.04.2 LTS 3.5.0 में समकक्ष-कर्नेल-डेवेल क्या है?


14

noob सवाल के लिए माफी, लेकिन जब मैं करने की कोशिश

sudo apt-get install Linux-kernel-devel 

मुझे निम्नलिखित मिले:

sudo apt-get install linux-kernel-devel  
Reading package lists... Done  
Building dependency tree        
Reading state information... Done  
E: Unable to locate package linux-kernel-devel  

मैंने निम्नलिखित कोशिश की है:

sudo apt-get install linux-headers-$(uname -r)  
sudo apt-get install build-essentials  
sudo apt-get install Linux-headers-generic 

कोई खुशी के साथ ... कोई सुझाव?


2
आपको पैकेज लिनेक्स-कर्नेल-डेवेल से क्या उम्मीद है? आप हेडर की तलाश कर रहे हैं, या कुछ और?
रॉबी बसाक

जवाबों:


15

कार्यकारी सारांश

आप शायद नामक पैकेज को स्थापित करना चाहते हैं 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 -r3.5.0-36-genericgeneric हिस्सा लें।

तब पैकेज बुलाया स्थापित 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 प्रदान कर सकते हैं जहाँ हम इसे एक्सेस कर सकते हैं।

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


0

जैसा कि रिपोर्ट में कहा गया है (E: पैकेज लाइनक्स-कर्नेल-डेवेल का पता लगाने में असमर्थ) ऐसा कोई पैकेज नहीं है। आप यहाँ से डेबियन कर्नेल पैकेज को डाउनलोड करके अपने इच्छित हर कर्नेल संस्करण को स्थापित कर सकते हैं

उदाहरण के लिए; हम कर्नेल को 3.9.8 (i386 आर्किटेक्चर) स्थापित करना चाहते हैं; सभी ** i386.deb पैकेज डाउनलोड करें और एक फ़ोल्डर में * * * all.deb पैकेज भी । टर्मिनल में सीडी कमांड के साथ फ़ोल्डर में जाओ;

sudo dpkg -i *.deb
sudo update-grub2
sudo reboot

यह आप चाहते हैं कर्नेल संस्करण स्थापित करेगा। आप इस साइट में कर्नेल मेनलाइन और लॉन्गटर्म संस्करणों के संस्करणों का विश्लेषण कर सकते हैं


0

आपको अपने आप को मैप करना होगा कि आपको किस विशिष्ट डिब की ज़रूरत है, लेकिन उबंट की कर्नेल बिल्ड में आपको जो डीबियाँ चाहिए होंगी

ईमानदारी से मैं पहले जाँच करूँगा sudo apt-get updateऔर फिर sudo apt-get dist-upgradeयह सुनिश्चित करूँगा कि आपकी नवीनतम कर्नेल चल रही है और शीघ्र ही इसे फिर से करने की आवश्यकता नहीं है।

अगला आपके संस्करण के लिए कर्नेल बिल्ड लिस्टिंग के माध्यम से देखें जो आपके मेल खाता है uname -r। आपको प्रत्येक बिल्ड बिल्ड में देखना होगा। यह पता लगाने के लिए कि वे किस हेड संस्करण का निर्माण कर रहे हैं। मेरे पास 3.5.0-34 # 55 मेरी कर्नेल के रूप में सूचीबद्ध है, लेकिन यह वास्तव में 3.5.7.14-क्वांटल बनाने के लिए मैप करता है । अपने हेडर और इस तरह के पाने के लिए उस संस्करण के साथ मेल खाने वाले सभी डेब स्थापित करें, और सुनिश्चित करें कि आपको अपने बिल्ड टूल मिल गए हैंsudo apt-get install build-essential

आपका माइलेज बहुत अधिक हो सकता है जो इस बात पर निर्भर करता है कि आप डेवेल फाइलों के साथ क्या करने की योजना बना रहे हैं।


0

linux-kernel-devel एक SUSE / Redhat पैकेज का नाम है, जो जेनबुक जैसी चीजें प्रदान करता है।

एक बहुत ही त्वरित Google बताता है कि लिनक्स-हेडर-जेनेरिक, डेबियन / उबंटू पर जेनबुक प्रदान करता है।

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