本文介绍在centos 7.2 server
上下载安装virtualbox
,记录遇到的问题:
yum install kernel-devel
版本不一致以及自己解决问题的过程。
cd /etc/yum.repos.d
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
yum --enablerepo=epel install dkms
CentOS/RHEL 7, 64 Bit (x86_64):
# rpm -Uvh http://epel.mirror.net.in/epel/7/x86_64/e/epel-release-7-8.noarch.rpmCentOS/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
替换一下就好了。
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模块和主机内核版本不一致,无法运行。
现在解决方案有两大类:
软件不兼容问题
。后续的工作量很大。最后还是决定下载版本一直的内核源码。步骤如下:
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
~ 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
yum install VirtualBox-5.1