install virtualbox on centos server

摘要:本文介绍在centos 7.2 server上下载安装virtualbox,记录遇到的问题:"CentOS 内核版本与yum install kernel-devel版本不一致",以及自己解决问题的过程。

Env

  • CentOS 7.2-1511(笔者利用U盘镜像安装在物理机)

Add repo url

cd /etc/yum.repos.d  
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo  

Install denpendiencies

yum --enablerepo=epel install dkms  

Install epel

CentOS/RHEL 7, 64 Bit (x86_64):  
# rpm -Uvh http://epel.mirror.net.in/epel/7/x86_64/e/epel-release-7-8.noarch.rpm

CentOS/RHEL 6, 64 Bit (x86_64):  
# rpm -Uvh http://epel.mirror.net.in/epel/6/x86_64/epel-release-6-8.noarch.rpm

这一步报错:找不到url,笔者自己复制url到浏览器发现确实没有这个链接。但是我在仓库下找到另一个链接:

http://epel.mirror.net.in/epel/7/x86_64/e/epel-release-7-9.noarch.rpm  

替换一下就好了。

Install kernel-devel

sudo yum install kernel-devel  

kernel-devel是kernel(内核)源码,默认会安装到/usr/src/kernels目录下面。之所以需要内核源码。是因为virtualbox需要结合内核源码编译特定内核版本的模块

笔者遇到的问题是yum install kernel-devel的版本和CentOS上的内核版本不一致。如下(下面的结果是笔者解决了所有问题后列出来的,可以看到没安装的版本3.10.0-514.2.2.el7和主机版本不一致):

➜  alpine uname -r                  
3.10.0-327.36.3.el7.x86_64  
➜  alpine sudo yum list kernel-devel
Loaded plugins: fastestmirror  
Loading mirror speeds from cached hostfile  
 * base: mirror.0x.sg
 * epel: mirror.smartmedia.net.id
 * extras: mirror.0x.sg
 * updates: mirror.0x.sg
Installed Packages  
kernel-devel.x86_64                       3.10.0-327.36.3.el7                       installed  
Available Packages  
kernel-devel.x86_64                       3.10.0-514.2.2.el7                        updates  

这就导致编译安装的virtualbox模块和主机内核版本不一致,无法运行。

现在解决方案有两大类:

  • 下载和主机内核版本一直的源码。
  • 升级内核版本到3.10.0-514.2.2.el7,深思后觉得这个方法不妥,因为升级内核后会导致软件不兼容问题。后续的工作量很大。

最后还是决定下载版本一直的内核源码。步骤如下:

  • Google kernel-devel-3.10.0-327.36.3.el7.x86_64 成功找到内核源码的有效地址,果断下载。 参考

  • 安装

sudo yum install kernel-devel-3.10.0-327.36.3.el7.x86_64.html  
  • 添加源码到环境变量
# export KERN_DIR=/usr/src/kernels/3.10.0-327.36.3.el7.x86_64
  • 安装virtualbox(见下一步)

List pkg

~ yum search virtualbox
Loaded plugins: fastestmirror  
Determining fastest mirrors  
 * base: centos.usonyx.net
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: centos.usonyx.net
 * updates: centos.usonyx.net
virtualbox                                                                                                                                                                             31/31  
VirtualBox-4.3.x86_64 : Oracle VM VirtualBox  
VirtualBox-5.0.x86_64 : Oracle VM VirtualBox  
VirtualBox-5.1.x86_64 : Oracle VM VirtualBox  

Install

yum install VirtualBox-5.1  

Reference