前言
博主从事android开发,宿主机是Ubuntu 16.04系统。因为要用到windows应用,故用virtualBox虚拟了windows 10系统。最新在升级virtualBox6.0遇到官网的deb文件无法安装以及安装过程中出现/sbin/vboxconfig报错的问题。下面记录下正确的安装过程及错误处理方法。
1.确认系统版本
cat /etc/lsb-release
打印如下:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
xenial即是该系统版本代号
2.添加virtualBox到sources.list文件中
运行
sudo gedit /etc/apt/sources.list
添加下面的内容,保存
deb https://download.virtualbox.org/virtualbox/debian xenial contrib
3.下载oracle公钥
运行
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
4.安装virtualBox
sudo apt-get install virtualbox-6.0
5. 安装过程的/sbin/vboxconfig报错处理
由于android编译环境要求gcc g++的版本为4.8以下,而Ubuntu16.04系统原始的gcc g++版本为5,相应的virtualBox要求的gcc g++版本也应该是5。这就导致android编译环境的Ubuntu运行/sbin/vboxconfig报错。从报错log能够看出,gcc的版本不兼容。
如此,处理的方法也就很明确了。
Step1:找到gcc的位置
cmd运行
whereis gcc
有如下输出
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz
进入gcc所在目录
cd /usr/bin/gcc
Step2: 切换gcc和g++版本
首先查看当前gcc版本号
gcc -v
可以看到我本地的gcc版本是4.4,而系统原始的版本是5
gcc version 4.4.7 (Ubuntu/Linaro 4.4.7-8ubuntu1)
下面先删除gcc和g++的链接
sudo rm gcc
sudo rm g++
再将gcc和g++链接到高版本
ln -s gcc-5 gcc
ln -s g++-5 g++
Step3: 重新运行/sbin/vboxconfig,完成virtualBox安装
sudo /sbin/vboxconfig
这时已经不再报错了。打开virtualBox看看启动是否正常。
Step4:切回gcc和g++版本
此时的gcc版本不满足android编译要求,因而还需切回低版本,方法类似
sudo rm gcc
sudo rm g++
ln -s gcc-4.4 gcc
ln -s g++-4.4 g++
Step5:检查gcc和g++版本及android编译是否正常
有疑问欢迎留言讨论。
别忘了点赞,每天进步一点点。