RHEL: эта система в настоящее время не настроена для сборки модулей ядра.

Я пытаюсь установить virtualbox5.2 на виртуальную машину RHEL 7. Когда я пытаюсь пересобрать модули ядра, я получаю следующую ошибку:

[root@myserver~]# /usr/lib/virtualbox/vboxdrv.sh setup
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    kernel-devel kernel-devel-3.10.0-693.11.1.el7.x86_64

Я попытался установить kernet-devel и получил сообщение об успешном завершении.

Installed:
  kernel-devel.x86_64 0:3.10.0-693.21.1.el7                                     

Complete!

Но все равно установка не удалась.

Есть идеи, чего здесь не хватает?


person codec    schedule 19.03.2018    source источник
comment
Для тех, у кого такая же проблема в дистрибутиве на основе Debian, установите отсутствующие пакеты с помощью: sudo apt-get install -y linux-headers-amd64 linux-headers-$(uname -r)   -  person emrekgn    schedule 19.07.2018
comment
Существует руководство по RHEL (я не тестировал RHEL), которое я успешно проверил для Fedora 34.   -  person Eugene Gr. Philippov    schedule 29.06.2021


Ответы (8)


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

Замените dnf на Fedora. Мне не нужно было делать перезагрузку, но ymmv.

Изменить на 2020 год:

Centos/RHEL 8 теперь также используют dnf вместо yum. У меня не было возможности протестировать это на этих дистрибутивах, поэтому тот же отказ от ответственности YMMV все еще применяется.

person pyansharp    schedule 29.07.2018

Сначала запустите в терминале: uname -r тогда вы получите имя и информацию о текущем ядре (CURRENT_KERNEL).

Теперь вы можете установить с помощью команды: yum install kernel-devel-CURRENT_KERNEL

Примечание: замените CURRENT_KERNEL строкой, полученной из uname -r.

person Milan Rakos    schedule 04.06.2018

Такое же сообщение появилось, когда я попытался обновить гостевые дополнения VirtualBox 5.2.12 на моем Kali Linux (версия GNU/Linux Rolling). Я исправил это, выполнив следующие шаги:

  1. Выполните apt update/upgrade, чтобы поддерживать вашу систему в актуальном состоянии. Не забудьте перезагрузить систему.
  2. Запустите «apt-get install linux-headers-$(uname -r)».
  3. Запустите VBoxLinuxAdditions.run из терминала, сообщение об ошибке исчезнет, ​​и гостевые дополнения будут успешно установлены.
  4. Перезагрузите систему, гостевые дополнения работают нормально.
person Bart Qiao    schedule 22.06.2018

Я пришел сюда в поисках того же ответа для CentOS 6, и приведенные выше ответы сработали с небольшой модификацией (так что для всех, кто тоже попал сюда)...

yum install -y kernel-devel kernel-devel-$(uname -r)

Итак, «yum» вместо «apt-get». Кроме того, некоторые Linux используют «linux-headers» вместо «kernel-devel», но принцип, похоже, тот же.

person Ghost8472    schedule 17.10.2018

Ядро, которое вы использовали, было kernel-devel-3.10.0-693.11.1.el7.x86_64 немного отличается от того, которое вы установили kernel-devel.x86_64 0:3.10.0- 693.21.1.el7 . В моем случае в моей ОС установлено несколько разных версий, и «sudo yum install kernel-devel» всегда устанавливает для меня самую новую версию. Затем я решаю это, устанавливая версию ядра по умолчанию такой же, как у yum, установленной для меня. Вы можете проверить ядро, которое вы установили в своей ОС, с помощью следующей команды:

sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

Затем просто установите версию ядра, которую вы выбрали для использования, такую ​​же, как и yum, выбрав для вас следующую команду: (обратите внимание, что число, наконец, взято из результата предыдущей команды),

sudo grub2-set-default 0

сгенерируйте конфигурацию grub2 с помощью команды gurb2-mkconfig, а затем перезагрузите сервер.

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
person Rong.l    schedule 08.04.2019

Милан Ракош прав. Ваш установленный kernel-devel должен иметь строку суффикса, точно такую ​​же, как вывод uname -r. Кроме того, журналы во время установки vboxdrv.sh также показывают требуемую версию ядра-devel.

Итак, в вашем случае вы запустите команду: sudo yum install kernel-devel-3.10.0-693.11.1.el7.x86_64

person Fanqin Zhou    schedule 26.07.2018

чтобы решить эту проблему, я запустил yum update -y. Я думаю, что это самый быстрый способ решить эту проблему. Другое решение — настроить репозитории с помощью установочного DVD, чтобы вы могли установить заголовки ядра вашей текущей версии CentOS.

Моя история:

  • yum install epel-release
  • yum install perl gcc dkms kernel-devel kernel-headers make bzip2
  • yum groupinstall "Development tools"
  • yum update -y
  • reboot

После этого я монтирую VBoxGuestAdditions и запускаю процесс

person ser99.sh    schedule 09.06.2020

yum install kernel-devel-3.10.0-693.11.1.el7.x86_64 исправил проблему.

person codec    schedule 19.03.2018
comment
Пакет kernel-devel-3.10.0-693.11.1.el7.x86_64 недоступен. - person Szymon Roziewski; 10.05.2018
comment
@SzymonRoziewski у вас, вероятно, был установлен openVZ, в этом случае вы должны добавить «vz» к имени вашего пакета kernel-devel: yum install vzkernel-devel-3.10.0-693.11.1.el7.x86_64 - person Shlomi; 27.08.2019