Когда я набираю команду service vboxdrv setup
в моем терминале CentOS 7, я получаю следующую ошибку:
Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found
Как я могу устранить эту ошибку?
Когда я открываю файл журнала, набирая vi /var/log/vbox-install.log
, содержимое:
Uninstalling modules from DKMS
removing old DKMS module vboxhost version 5.0.4
------------------------------
Deleting module version: 5.0.4
completely from the DKMS tree.
------------------------------
Done.
Attempting to install using DKMS
Creating symlink /var/lib/dkms/vboxhost/5.0.4/source ->
/usr/src/vboxhost-5.0.4
DKMS: add completed.
Failed to install using DKMS, attempting to install without
Makefile:185: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.
Ошибка происходит в процессе установки VirtualBox 5.0.4 с использованием инструкций из этого руководства . Подводя итог, пока, у меня есть:
vi /etc/yum.repos.d/virtualbox.repo
Добавьте следующий текст, затем сохраните и выйдите:
[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
Затем в командной строке введите:
# rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install gcc make patch dkms qt libgomp
# yum install kernel-headers kernel-devel fontforge binutils glibc-headers glibc-devel
...
Complete!
# cd /usr/src/kernels
# ls -al
total 12
drwxr-xr-x. 3 root root 4096 Sep 25 16:14 .
drwxr-xr-x. 4 root root 4096 Sep 25 14:17 ..
drwxr-xr-x. 22 root root 4096 Sep 25 16:14 3.10.0-229.14.1.el7.x86_64
# export KERN_DIR=/usr/src/kernels/3.10.0-229.14.1.el7.x86_64
# yum install VirtualBox-5.0
...
Complete!
# service vboxdrv setup
Stopping VirtualBox kernel modules [ OK ]
Uninstalling old VirtualBox DKMS kernel modules [ OK ]
Removing old VirtualBox pci kernel module [ OK ]
Removing old VirtualBox netadp kernel module [ OK ]
Removing old VirtualBox netflt kernel module [ OK ]
Removing old VirtualBox kernel module [ OK ]
Trying to register the VirtualBox kernel modules using DKMSError! echo
Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found at
/lib/modules/3.10.0-229.el7.x86_64/build or /lib/modules/3.10.0-229.el7.x86_64/source.
[FAILED]
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules [FAILED]
(Look at /var/log/vbox-install.log to find out what went wrong)
Смотрите выше содержание vi /var/log/vbox-install.log
Из любопытства я заглянул внутрь /lib/modules/
и обнаружил следующее:
[root@localhost kernels]# cd /lib/modules
[root@localhost modules]# ls -al
total 16
drwxr-xr-x. 4 root root 4096 Sep 25 15:58 .
dr-xr-xr-x. 30 root root 4096 Sep 25 16:23 ..
drwxr-xr-x. 7 root root 4096 Sep 25 15:59 3.10.0-229.14.1.el7.x86_64
drwxr-xr-x. 8 root root 4096 Sep 25 16:24 3.10.0-229.el7.x86_64
Согласно совету @ EricRenouf, я набрал текст uname -a
, и терминал ответил:
Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Я не перезагружал машину, но в учебнике не говорилось о перезагрузке.
centos
terminal
kernel
linux-kernel
virtualbox
CodeMed
источник
источник
uname -a
показать3.10.0-229.el7.x86_64
или3.10.0-229.14.1.el7.x86_64
? Я предполагаю, что это первое, но yum установил заголовки для второго.Ответы:
Решение, скорее всего , можно найти в этом вопросе короткой версии существа, выполнение
Это установит заголовки ядра для версии ядра, которое вы в данный момент используете.
Я подозреваю, что в какой-то момент вы сделали
yum update
или подобное, и что на самом деле установили новое ядро, но вы еще не начали его запускать. Вероятно, происходит то, что когда вы делаетеyum install
шаги в своем вопросе, он смотрит на последнюю установленную версию и получает заголовки для этого. Однако при запускеvboxdrv
он смотрит на работающее ядро и пытается найти для этого заголовки.Ваши запущенные и установленные ядра не синхронизированы (что обычно не является большой проблемой), но вы нашли случай, когда это важно.
источник
No package kernel-devel-uname-r == 4.4.193-1.el7.elrepo.x86_64 available.
yum install kernel-devel
возможно, вам будет легче? Если нет, вы можете попробовать задать новый вопрос (возможно, процитируйте этот вопрос и предоставьте больше информации о вашей ситуации)