установка VirtualBox на Fedora 13 x64
Решил написать эту статью т.к. исходя из того что я ставил VirtualBox всю сегодняшнюю ночь, считаю что это довольно нетривиальный процесс и заслуживает определенного внимания.
Способы буду описывать в соответсвии хронологии сегодняшних событий.
способ #0 – способ для психов и тех, кто никогда не читает мануалы
1. Качаем дистрибутив с оффсайта.
1 2 | $ wget http://download.virtualbox.org/virtualbox/3.2.6 /VirtualBox-3.2-3.2.6_63112_fedora13-1.x86_64.rpm |
2. Устанавливаем dkms, kernel-header, kernel-devel и gcc
1 | $ su -c "yum install -y dkms kernel-devel kernel-header gcc" |
3 Установка исходников ядра
3.1 Предисловие
Казалось бы мы установили исходники ядра на предыдущем шаге, но нет, VirtualBox так не считает. Можете даже проверить мои слова и попробывать сейчас установить rpm.
1 2 | $ su -c "rpm -ivh VirtualBox-3.2-3.2.6_63112_fedora13-1. x86_64.rpm" |
После установки rpm в меню даже появится иконка, и вам возможно даже удастся ее запустить, вот только создать там виртуальную машину вам не удастся т.к. выскочит ошибка, требующая перекомпилить VB командой
1 | # /etc/init.d/vboxdrv setup |
и после того как вы перекомпилите VB, выше приведенной командой, в консоли выведется следующие сообщение
1 2 3 4 5 6 7 | # /etc/init.d/vboxdrv setup WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/. Stopping VirtualBox kernel module [ OK ] Recompiling VirtualBox kernel module [СБОЙ ] (Look at /var/log/vbox-install.log to find out what went wrong) |
Посмотрев лог ошибок
1 | $ cat /var/log/vbox-install.log |
можно увидеть следующие
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Attempting to install using DKMS removing old DKMS module vboxdrv version 3.2.6 ------------------------------ Deleting module version: 3.2.6 completely from the DKMS tree. ------------------------------ Done. Creating symlink /var/lib/dkms/vboxdrv/3.2.6/source -> /usr/src/vboxdrv-3.2.6 DKMS: add Completed. Error! Your kernel source for kernel 2.6.33.4-95.fc13.x86_64 cannot be found at /lib/modules/2.6.33.4-95.fc13.x86_64 /build or /lib/modules/2.6.33.4-95.fc13.x86_64/source. You can use the --kernelsourcedir option to tell DKMS where it's located. Failed to install using DKMS, attempting to install without Makefile:159: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=directory and run Make again. Останов. |
Делать сейчас то что советует лог не имеет смысла т.к. исходников ядра в
/lib/modules/2.6.33.4-95.fc13.x86_64/build и /lib/modules/2.6.33.4-95.fc13.x86_64/source
действительно нет, собственно поэтому нам и нужно их установить.
3.2 Собственно сама установка
3.2.1 Качаем srpm
Например для дефолтного ядра (kernel-2.6.33.3-85.fc13.src.rpm) для fedora 13 его можно скачать здесь http://download.fedora.redhat.com/pub/fedora/linux/releases/13/Fedora/source/SRPMS/.
Однако, есть способ и немного по попсовее:
1 2 | $ su -c "yum install yum-utils -y ; yumdownloader --source kernel" |
3.2.2 Ставим скачанный пакет
1 | $ su -c "rpm -ivh имя_пакета.src.rpm" |
если нет sparse и/или rpm-build ставим их
1 | $ su -c "yum install sparse rpm-build -y" |
3.2.3 Делаем нормальными исходники
Теперь пробуем сделать сорцы нормальными (незабудьте забэкапить kernel.spec, мало ли что)
1 2 3 | $ su # rpmbuild -bp --target=$(uname -m) /root/rpmbuild/SPECS/ kernel.spec |
Далее вы возможно будете наблюдать список зависимостей, которые необходимо устранить, в противном случае пропускаем этот шаг
1 2 3 4 5 6 7 8 9 10 | Платформы для сборки: x86_64 Сборка для платформы x86_64 ошибка: Неудовлетворенные зависимости сборки: redhat-rpm-config нужен для kernel-2.6.33.6-147.fc13.x86_64 xmlto нужен для kernel-2.6.33.6-147.fc13.x86_64 asciidoc нужен для kernel-2.6.33.6-147.fc13.x86_64 elfutils-libelf-devel нужен для kernel-2.6.33.6-147.fc13.x86_64 zlib-devel нужен для kernel-2.6.33.6-147.fc13.x86_64 binutils-devel нужен для kernel-2.6.33.6-147.fc13.x86_64 libdwarf-devel нужен для kernel-2.6.33.6-147.fc13.x86_64 |
Сейчас исходники лежат, например здесь /root/rpmbuild/BUILD/kernel-2.6.33/linux-2.6.33.x86_64
, для вашей версии ядра циферки будут другие. На этом шаге нам необходимо сделать так чтобы ссылка /lib/modules/2.6.33.4-95.fc13.x86_64/source указывала на наши исходники
1 2 3 4 | $ su # rm -r /lib/modules/2.6.33.4-95.fc13.x86_64/source # ln -s /root/rpmbuild/BUILD/kernel-2.6.33/linux-2.6.33.x86_64 /lib/modules/2.6.33.4-95.fc13.x86_64/source |
3.2.4 Финал
Перезагружаемся и теперь вводим с чистой совестью долгожданное
1 | $ su -c '/etc/init.d/vboxdrv setup' |
способ #1 – установка без гемороя из репозитория
Сначала добавляем новый репозиторий в YUM
1 2 3 4 | $ su -c 'wget http://download.virtualbox.org/virtualbox/rpm/ fedora/virtualbox.repo -O /etc/yum.repos.d/virtualbox.repo; sed -i "s,enabled=0,enabled=1,g" /etc/yum.repos.d/ virtualbox.repo' |
Теперь обновляемся (обязательно!), качаем и устанавливаем необходимое и сам дистр VB
1 2 | $ su -c 'yum update; yum install -y VirtualBox-3.2 dkms gcc kernel-devel kernel-headers' |
Далее перезагружаемся (обязательно!) и компилим VB
1 | $ su -c '/etc/init.d/vboxdrv setup' |
В конце осталось добавить себя в группу пользователей VB
1 | $ su -c 'usermod -G vboxusers -a <ваш логин>' |
итоги
В заключение хочу сказать что у меня получилось установить VirtualBox обоими способами, однако я настоятельно рекоммендую использовать только второй способ.
федора страшная…. Под убунтой достаточно sudo apt-get install virtualbox …
Интересное замечание.
Мне показалось…после игы с разными дистрибутивами, что Fedora самое оптимальное решение.Удобна, репозиториев много, софта под неё – тоже хватает. Главное весьма стабильна.
Некоторые люди говорят, что у Федоры есть 1 недостаток, который отталкивает их от нее – слишком большая зависимость от интернета.
Я, конечно, не принадлежу к их числу и считаю, что эта проблема решается настройкой локального репозитария.
немного отредактировал статью, привел к более-менее читаемому виду