yum कर्नेल-डेवेल को मेरे कर्नेल संस्करण से अलग स्थापित करता है


32

मैं Fedora 19 में VMWare प्लेयर को स्थापित करने का प्रयास कर रहा हूं। मैं इस समस्या में चल रहा हूं कि कई उपयोगकर्ताओं के पास जहां VMware प्लेयर कर्नेल हेडर नहीं मिल रहा है। मैंने के माध्यम से kernel-headersऔर kernel-develपैकेज को स्थापित किया है और yumजो फ़ाइल दिखाई देती है /usr/src/kernelsवह है:

3.12.8-200.fc19.x86_64

हालांकि, जब मैं uname -rअपना फेडोरा कर्नेल संस्करण करता हूं:

3.9.5-301.fc19.x86_64

जो एक अलग संस्करण है। इसका मतलब यह है कि जब मैं कर्नेल के पथ पर VMware खिलाड़ी को इंगित करता हूं तो मुझे यह त्रुटि मिलती है:

C header files matching your running kernel were not found.  
Refer to your distribution's documentation for installation instructions.

मैं सही कर्नेल कैसे स्थापित कर सकता हूं और मुझे VMware की ओर संकेत करना चाहिए या नहीं /usr/src/kernels/<my-kernel>?


बस जिज्ञासु ... आप फेडोरा 19 में नवीनतम कर्नेल क्यों नहीं चला रहे हैं?
rickhg12hs

मेरे अपने निर्णय से नहीं। मैंने वेबस्टे से नवीनतम बिल्ड स्थापित किया जो मैं कर सकता था। क्या कर्नेल को अपडेट करने का कोई तरीका है?
शानदार मिस्टर फॉक्स

अधिकांश पैकेज प्रबंधक का उपयोग करके या yum updateकमांड लाइन से रूट निष्पादन के रूप में सभी संकुल को चालू रखते हैं । अक्सर किया जाता है, और एक सभ्य इंटरनेट कनेक्शन के साथ, यह लंबे समय तक नहीं लेता है, लेकिन आपको ऐसा करने के लिए थोड़ा पकड़ना होगा। नए कर्नेल का उपयोग करने के लिए, आपको अपडेट किए जाने के बाद रिबूट करना होगा।
rickhg12hs

जवाबों:


33

आप सही कर्नेल हेडर फ़ाइलों को इस तरह स्थापित कर सकते हैं:

$ sudo yum install "kernel-devel-uname-r == $(uname -r)"

उदाहरण

यह कमांड हमेशा सही संस्करण स्थापित करेगा।

$ sudo yum install "kernel-devel-uname-r == $(uname -r)"
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
No package kernel-devel-uname-r == 3.12.6-200.fc19.x86_64 available.
Error: Nothing to do

या आप उन्हें इस तरह से खोज सकते हैं:

$ yum search "kernel-headers-uname-r == $(uname -r)" --disableexcludes=all
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
Warning: No matches found for: kernel-headers-uname-r == 3.12.6-200.fc19.x86_64
No matches found

हालाँकि मैंने इस मुद्दे पर ध्यान दिया है जहाँ हेडर के विशिष्ट संस्करण रिपॉजिटरी में मौजूद नहीं हैं। आपको बिल्ड के किसी विशेष संस्करण को खोजने के लिए कोजी में पहुंचना पड़ सकता है।

उस पृष्ठ में कर्नेल के उस विशेष संस्करण के लिए सभी संपत्तियां शामिल हैं।


2
इससे बेहतर क्यों है yum install "kernel-devel-$(uname -r)"? आपके उदाहरण से, यह भी काम नहीं लगता है ...
drs

1
@ डीआरएस - यह काम नहीं करता है b / c कोई मिलान pkgs नहीं हैं जो मेरे कर्नेल संस्करण के लिए हेडर प्रदान करते हैं। For -uname-r` का उपयोग करना कार्य w / pkgs करने का एक अधिक पोर्टेबल तरीका है जो कर्नेल संस्करण से बंधा हुआ है। : यदि आप अपने उदाहरणों को भी देखने के लिए सबसे रेपोस पर प्रयोग किया जाता है rpmfusion.org/Howto/nVidia
SLM

यह वास्तव में मददगार था। मुझे लगा कि मैंने कर्नेल हेडर का सही संस्करण स्थापित किया है, नाम में बहुत कम अंतर है, लेकिन यह सही नहीं था और निर्माण करने में असफल रहा। उपरोक्त कमांड से मुझे वास्तविक रूप में मदद मिली और साथ ही मुझे पैकेज खोज में बेहतर जानकारी देने में मदद मिली।
साभार

क्या कोई ऐसा तरीका है जिससे हम yum / dnf अपने आप नए कर्नेल हेडर को स्वचालित रूप से स्थापित कर सकते हैं जब भी यह कर्नेल को अपडेट करता है?
शंकर नारायणन

2
@ मुझे इस सिंटैक्स पर कोई भी जानकारी / प्रलेखन कहाँ मिल सकता है "kernel-devel-uname-r == $(uname -r)":?
वादिम कोटोव

8

वितरण सिंक्रनाइज़ेशन

आपकी समस्या "वितरण सिंक्रनाइज़ेशन" हो सकती है। इस कमांड को चलाने से मेरी समस्या हल हो गई।

yum distro-sync

उपलब्ध नवीनतम पैकेजों के साथ स्थापित पैकेज को सिंक्रोनाइज़ करता है, यह उचित तरीके से अपग्रेड, अपग्रेड या डाउनग्रेड करके किया जाता है। ( http://man7.org/linux/man-pages/man8/yum.8.html )


4

आप पैकेज नाम के साथ संस्करण को निर्दिष्ट करके पैकेज के एक विशिष्ट संस्करण को स्थापित कर सकते हैं yum। उदाहरण के लिए, आपके द्वारा चलाए जा रहे विशिष्ट कर्नेल के लिए कर्नेल विकास फ़ाइलों को स्थापित करने के लिए, टाइप करें

yum install kernel-devel-3.9.5-301.fc19

सही kernel-headersपैकेज प्राप्त करने के लिए आप एक समान कमांड कर सकते हैं ।


0

यह कुछ समय के लिए भी होता है, सिस्टम अपडेट के बाद VMBoxAdditions को स्थापित करना।

मुझे कर्नेल-देवों को हटाना होगा :

yum remove kernel-devel

और फिर इसे फिर से स्थापित करें:

yum install kernel-devel

और फिर जादुई रूप से यह काम करता है।


0

कर्नेल को अपडेट करने के बाद मैं एक ही बात पर आता हूं और जिम के जवाब से बहुत मदद मिली। [Elrepo-kerne] रेपो को सक्षम करने के लिए, [elrepo-kernel] के लिए /etc/yum.repos.d/elrepo.repoफ़ाइल और सेट enabled=1(बजाय enabled=0) पर जाएं , फिर स्लम के उत्तर द्वारा सूचित अपडेट करें। उसके बाद, इसके विपरीत enabled=0, ताकि यम इस रेपो के साथ बातचीत नहीं करेगा। बस इंगित करने के लिए, कमांड yum repolist allआपको सभी सक्षम और अक्षम रेपो दिखाएगा।


-2

हर सुझाव का पालन करने के बाद मुझे अपने अंत में एक बात मिली जिसने इसे ठीक करने में मदद की। मुझे [elrepo-kernel] रेपो को सक्षम करना था। तब मैं सही हेडर और कर्नेल-डेवेल स्थापित करने में सक्षम था


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

@FantasticMrFox यह प्रश्न का उत्तर है, बिना स्पष्टीकरण के एक संक्षिप्त उत्तर के रूप में कि यह प्रक्रिया क्यों आवश्यक है, और यह दोहराता है कि दूसरों ने पहले ही क्या कहा है।
Kusalananda
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.