目录
一、在线安装
二、离线版rpm安装
1、下载依赖及安装包
二、拷贝并安装
三、启动验证
1、https://www.virtualbox.org
2、官网download页面,拉到最下边。
3、打开文件地址,这是yum源。
4、配置centos中yum源
通过cd进入/etc/yum.repos.d,vim编辑virtualbox.repo,把之前复制的内容粘贴进去,或者是在外边建立好了virtualbox.repo文件,导入到目录下。
5、保证网络能连接互联网,安装
# 更新yum源
sudo yum update
或
# 查询包,会自动导入
sudo yum search virtual
输入y,自动导入virtual安装包。
6、安装
sudo yum search virtualBox
# 搜索后安装最新版本即可
sudo yum install -y VirtualBox-7.0.x86_64
在线安装的好处就是可以自动处理依赖关系,一键安装。
6、重新编译VirtualBox内核
sudo /sbin/vboxconfig
当您在Linux系统上安装VirtualBox时,它将会安装内核模块以便让VirtualBox虚拟机能够与主机操作系统进行通信。然而,如果您的Linux内核或VirtualBox发生了升级或更改,可能会导致这些内核模块不兼容或无法加载,这会导致VirtualBox无法正常工作。
在这种情况下,您可以运行sudo /sbin/vboxconfig
命令,它会重新编译VirtualBox内核模块并将其与当前正在运行的内核匹配。这将确保VirtualBox能够与当前的Linux内核兼容并正常工作。
需要注意的是,sudo /sbin/vboxconfig
命令需要以管理员权限运行,因此需要使用sudo
命令来执行它。
不报错就直接跳到下一个标题。
有可能报错的问题:
kernel-devel软件包未安装,无法编译内核模块。
"kernel-devel"和"kernel-header"都是Linux操作系统中用于开发和编译内核模块所需的软件包。它们都包含用于编译内核模块所需的头文件和工具链。但是,它们之间存在一些区别。
通常,"kernel-devel"软件包包含完整的内核源代码和与内核版本匹配的开发工具链,因此它比"kernel-header"软件包更大。另一方面,"kernel-header"软件包只包含必要的内核头文件,以便在编译内核模块时使用。如果您只需要编译内核模块,则使用"kernel-header"软件包可能会更加节省空间。但是,如果您需要完整的内核源代码和开发工具链,则应该使用"kernel-devel"软件包。
注意:
通常是新装机,
(1)没有安装kernel-devel软件包。
(2)或者是安装镜像中的 kernel 版本比线上 repo 库中的 kernel-devel 低,因此安装 kernel-devel 时,安装了比当前运行内核版本高的 kernel-devel,为了一致,可以直接升级当前内核。
# 查看关于kernel已安装的软件
rpm -qa | grep kernel
# 查看内核版本
uname -r
# 查看kernel-headers版本
rpm -qa kernel-headers
# 查看kernel-devel版本
rpm -qa kernel-devel
发现kernel版本低,kernel-devel没有安装。
# 安装kernel-devel
sudo yum install -y kernel-devel
# 更新kernel
sudo yum update kernel
注意:更新后需要重启系统
查看版本,一致了。
8、启动服务
# 重启
sudo systemctl restart vboxdrv.service
# 查看状态
sudo systemctl status vboxdrv.service
(1)首先检查一下无法联网机器上的kernel与kernel-devel是否都安装了并且版本一致。一致可直接跳转到第2步。
sudo rpm -qa | grep kernel
像我的机器上,就是kernel-devel未安装。 所以得先从有网络的机器上下载kernel-devel的安装包及依赖。新建文件夹并在文件夹下执行一下命令。
# 搜索软件包
yum search kernel-devel
# 如果没有repotrack命令,先安装yum-utils,有就不用执行
sudo yum install -y yum-utils
sudo repotrack kernel-devel.x86_64
下载好后,检查目录中下载的kernel-devel的rpm安装包是否与未联网的机器上的kernel版本一致。
# 在未联网的机器上运行
uname -r
# 在已下载的kernel-devel目录下运行
ls | grep kernel
我这里一致。如果不一致,可以以同样的方式下载一下kernel,一并安装。
可以放到一个文件夹下,重复的依赖会自动覆盖。不影响安装。
(2)查看未联网机器上是否安装有gcc,make,perl,没有就下载安装
gcc是GNU编译器套件(GNU Compiler Collection)的缩写,是一款编译器工具,用于将C、C++等编程语言的源代码转换为可执行文件或库文件。它是一个非常常用的编译器,常用于开发系统级软件、操作系统、设备驱动程序等。
make是一个构建工具,它的主要功能是管理软件编译过程中的依赖关系,自动化编译过程,可以根据一系列规则和指令将源代码转换为可执行文件。它可以自动判断哪些文件需要重新编译,从而提高编译效率。
perl是一种脚本语言,可用于文本处理、网络编程、系统管理等多种任务,它的特点是易于学习、强大的正则表达式支持以及大量的模块库。它常用于开发网站、CGI脚本、系统管理工具等。
可以按照上述方式下载,并将他们放到一个包里。
并执行rpm安装命令,保证三个命令都能使用。
(3)在有互联网的机器上下载安装包及依赖
根据上述在线版的教程中2456步骤,导入yum源,并使用sudo yum update更新源。
(4)下载需要的安装包版本及全量依赖,我这里下载最新版
新建一个空文件夹,在文件夹下运行一下命令。等运行完后,所有rpm依赖包及软件安装包会全部下载到此目录下。
# repotrack会下载软件包及全量依赖
sudo repotrack VirtualBox-7.0.x86_64
将上述下载的所有文件或文件夹拷贝到无法联网的机器上。
(1)kernel-devel(如果需要),kernel(如果需要),都拷贝到一个文件夹中,如果有一样的可以覆盖。并将此目录及目录下所有文件都拷贝到无法联网的机器上。
我这里就把kernel,kernel-devel都传到一个文件夹里了,然后拷贝到无法无法联网的机器上,执行安装命令。进入此目录,在此目录运行安装命令
sudo rpm -Uvh --force --nodeps *.rpm
安装完kernel内核后需要重启。
重启后查看下,可以看到已安装并版本一致。
(2)安装gcc+make+perl(如果需要)
方法与上述相同
(3)安装virtualbox
同样,在含有virtualbox的rpm软件包和依赖目录下运行安装命令
sudo rpm -Uvh --force --nodeps *.rpm
# 重启
sudo systemctl restart vboxdrv.service
# 查看状态
sudo systemctl status vboxdrv.service