खाली कर्नेल निर्देशिका लेकिन कर्नेल-हेडर स्थापित हैं


19

मेजबान - विंडोज 7

अतिथि - सेंटो

मैं स्थापित करने के लिए कोशिश कर रहा हूँ kernel-headersका उपयोग कर yumके बाद से की स्थापना के दौरान vmware-toolsमैं एक संदेश के लिए पूछ मिल 3.10.0-229.7.2.e17.x86_64 के लिए कर्नेल हेडर फाइल करने के लिए पथ

रनिंग yum install kernel-headersरिटर्न पैकेज कर्नेल-हेडर-3.10.0-229.7.2.e17.x86_64 पहले से इंस्टॉल और नवीनतम संस्करण । लेकिन निर्देशिका /usr/src/kernelsखाली है।

क्या कर्नेल हेडर कहीं और लगाए गए हैं? या मुझे yumकुछ और स्थापित करने के लिए कहा जाना चाहिए ?

पथ कर्नेल हेडर के लिए vmware-tools को प्रदान किया गया

Searching for a valid kernel header path...
The path "" is not a valid path to the 3.10.0-229.7.2.e17.x86_64 kernel headers.
Would you like to change it? [yes]

पथ प्रदान करना /usr/include/linuxफिर से वही प्रतिक्रिया देता है लेकिन "" प्रदान किए गए पथ के साथ बदल दिया जाता है।


1
के उत्पादन की जाँच करें rpm -ql kernel-headers; मुझे लगता है कि यह / usr / / linux में फाइलें डालता है, लेकिन मैं आउट-ऑफ-डेट हो सकता हूं। यह अच्छा होगा यदि आप संकेत कर सकते हैं कि आप vmware- टूल इंस्टॉलर को क्या रास्ता देते हैं और यह भी कि यह वापस क्या रिपोर्ट करता है।
जेफ स्कालर

जवाबों:


8

कर्नेल मॉड्यूल के निर्माण के लिए सभी आवश्यक निर्भरताएं स्थापित करने के लिए सही पैकेज है kernel-devel( अधिक जानकारी के लिए CentOS प्रलेखन देखें)।

हेडर स्थापित नहीं हैं /usr/src/kernels, बल्कि वे नीचे कई निर्देशिकाओं में स्थापित हैं /usr/include(सी हेडर फ़ाइलों के लिए डिफ़ॉल्ट स्थान)। आप kernel-headersउपयोग किए गए पैकेज की सामग्री को सूचीबद्ध कर सकते हैं :

rpm -ql kernel-headers

वह यह था। मुझे लगता है कि पहले पेज को मिला लेकिन के रूप में यह पढ़ने में भूलना "अगर आप चाहते हैं करते पूर्ण स्रोत उपयोग कर्नेल-devel की जरूरत है"। धन्यवाद
Kvothe

23

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

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

यह एक सरफेस बुक और VMWare कॉन्फिग पर काम करता है।
थिंककोड

सेंटो 7 पर काम करता है, दो घंटे से पहले बिताया .. धन्यवाद!
h0x91B

अंत में .... CentOS7 पर काम किया। बहुत बहुत धन्यवाद
VM_AI

इसने काम कर दिया। धन्यवाद। यकीन नहीं होता अगर कर्नेल-हेडर्स इस डीवल का हिस्सा।
मुरली मोपुरू

4

नीचे दिए गए CentOS संस्करण 7 में कर्नेल-हेडर्स के लिए पथ है।

/lib/modules/3.10.0-327.36.2.el7.x86_64/build/include

yum install kernel-headersदो बार चलाने के बाद (नवीनतम में अद्यतन), समस्या ठीक हो गई। सुनिश्चित करें कि चल रहे कर्नेल संस्करण और कर्नेल हेडर संस्करण समान हैं। मेरा कर्नेल संस्करण है3.10.0-327.36.2.el7.x86_64


इस तरह सीधे जवाब देने के लिए अधिक वोट के लायक हैं।
पश्चिमीगुण

2

मेरे पास एक ही मुद्दा था और उपरोक्त समाधान मेरे लिए काम नहीं करता था। यह CentOS 7 I का उपयोग कर रहा है।
यहाँ है क्या मेरे लिए समस्या का हल ...

कर्नेल हेडर स्थापित करें

yum -y install kernel-devel

प्रतीकात्मक लिंक सेट करें ताकि vmware टूल संस्करण को खोज सकें

export kernel_headers=`ls -hd /usr/src/kernels/3*`
sudo ln -s ${kernel_headers}/include/generated/uapi/linux/version.h ${kernel_headers}/include/linux/version.h

2

मैंने कर्नेल-डेवेल पैकेज स्थापित किया, लेकिन यह पता चला कि हेडर मेरे उदाहरण पर चलने वाले की तुलना में एक अलग कर्नेल संस्करण के लिए थे। समस्या को ठीक करने के लिए, मैं भागा

sudo yum upgrade

और रिबूट, और फिर vmware- उपकरण एक उपद्रव के बिना स्थापित।


2

मैं वास्तव में एक ही मुद्दा था।

मेरे मामले में मुझे बस कर्नेल-देव को हटाना था * एट इसे फिर से स्थापित करें:

yum -y remove kernel-devel*
yum -y install kernel-devel*

0

मेरा मानना ​​है कि मुझे इसके लिए एक काम मिला।

मैं सुझाव दे रहा हूं (VMWare की वेबसाइट पर भी) जो VMWare टूल के विपरीत ओपन-वीएम-टूल्स को स्थापित करने की सलाह देता है।

yum install open-vm-tools

स्थापित करने के बाद, निश्चित रूप से कुछ चेतावनी दी गई है, वर्चुअल मशीन को रिबूट करना याद रखें।

इसके अलावा, अब हरे रंग के चेक मार्क के बजाय जो आमतौर पर vSphere में दिखाई देता है, इसके बजाय यह ग्रे दिखाता है "?" लेकिन पहचानता है कि उपकरण चल रहे हैं और आईपी पता और ओएस को दिखाता है और साथ ही साथ "रनिंग (3-पार्टी / इंडिपेंडेंट)" डिस्प्ले भी चला रहा है।

तो उम्मीद है कि यह किसी की मदद करेगा। मैंने इस पर दो दिन बिताए हैं, और आखिरकार इस जवाब को पाया, और यह मेरे लिए काम किया, ESXi 5.1 और सेंटोस 7.2 के साथ vCenter अतिथि ओएस के रूप में चल रहा है।


ओपन-वीएम-टूल्स वास्तव में कुछ मामलों में vmware टूल का विकल्प नहीं है। जैसे। ओपन-वीएम-टूल्स अतिथि और होस्ट के बीच फ़ाइलों को साझा करने के लिए hgfs का समर्थन नहीं करते हैं। Vmware सेंटोस 7 पर hgfs का समर्थन करता है
गौरव

0

प्रश्न का उत्तर देने के लिए, कर्नेल स्रोत / usr / src / kernels / के तहत स्थापित किया गया है। कर्नेल-डेवेल स्थापित करने के लिए पैकेज है।

समस्या का समाधान प्रदान करने के लिए, समस्या का कारण यह है कि जो कर्नेल स्थापित किया गया है वह पुराना है और कर्नेल-डेवेल को रिपॉजिटरी में अपडेट किया गया है। इसलिए कर्नेल-डेवेल को स्थापित करना एक नए कर्नेल के स्रोत को स्थापित करता है और इसलिए vmware टूल्स कॉन्फिगर स्क्रिप्ट को स्रोत नहीं ढूंढता है। दो संभावित उपाय हैं।

  1. कर्नेल को अपडेट करें ताकि कर्नेल और कर्नेल-डेवेल दोनों नए हों।

    sudo yum upgrade

रिबूट करें ताकि नया कर्नेल लोड हो जाए और फिर vmware टूल कॉन्फिगर स्क्रिप्ट चलाएं।

  1. कर्नेल को अद्यतन करना हमेशा संभव नहीं होता है। यदि ऐसा है तो कर्नेल-डेवेल संस्करण स्थापित करें जो स्थापित कर्नेल संस्करण के समान है।

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

0

यह मेरे लिए एक ताजा न्यूनतम-सेंटोस इंस्टॉलेशन पर काम किया गया है:

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.