我在Mac上安装了High Sierra,Mac OS X 10.13。
我已经安装了一些应用程序,一些浏览器,webStorm,vagrant,skype和slack。
尝试安装virtualBox时,收到错误消息:
"安装失败。 安装程序遇到导致安装失败的错误。请与软件制造商联系以获取帮助。"
检查安装程序日志文件时,我收到以下错误消息:
Oct 19 16:22:42 newens-mbp installd[519]: PackageKit: Install Failed: Error Domain=PKInstallErrorDomain Code=112 "An error occurred while running scripts from the package “VirtualBox.pkg”." UserInfo={NSFilePath=./postflight, NSURL=file://localhost/Volumes/VirtualBox/VirtualBox.pkg#VBoxKEXTs.pkg, PKInstallPackageIdentifier=org.virtualbox.pkg.vboxkexts, NSLocalizedDescription=An error occurred while running scripts from the package “VirtualBox.pkg”.} {
NSFilePath = "./postflight";
NSLocalizedDescription = "An error occurred while running scripts from the package \U201cVirtualBox.pkg\U201d.";
NSURL = "file://localhost/Volumes/VirtualBox/VirtualBox.pkg#VBoxKEXTs.pkg";
PKInstallPackageIdentifier = "org.virtualbox.pkg.vboxkexts";
}
我用谷歌搜索了这个,并在这里和那里发现了一些解决不同问题的线程。但到目前为止,没有人对我有用。
我发现的一些帖子:
https://www.virtualbox.org/ticket/15832
Error installing Virtualbox 5.1.10 on macOS Sierra, "The installation failed"
https://apple.stackexchange.com/questions/177868/virtualbox-4-3-26-on-osx-10-10-2-fails-to-install
Can't unload kext while installing VirtualBox 4.3.6
这些解决方案都不适合我。
我没有安装vmware,并尝试搜索要删除的.match_kernel文件,但无法在任何地方找到它。我没有选择在磁盘实用程序上选择分区,因此无法对其执行修复磁盘权限。
我已经安装并卸载了不同的版本,并介于两者之间进行冷启动,试着看看是否会有所帮助。
感谢您的帮助!
答案 0 :(得分:29)
以下是我们提出的步骤**注意:如果您尝试下载或安装这几次,就像我一样,您将首先使用虚拟机卸载工具卸载虚拟机,您可以在下载的.dmg文件中找到该工具。您还需要从设备中弹出virtualbox(在finder的左侧面板中)。然后继续并遵循这些说明:
答案 1 :(得分:2)
我终于设法通过这里的建议来解决它:https://github.com/caskroom/homebrew-cask/issues/39369#issuecomment-339118861
运行此脚本:
#!/bin/bash
unload() {
if [ `ps -ef | grep -c VirtualBox$` -ne 0 ]
then
echo "VirtualBox still seems to be running. Please investigate!!"
exit 1;
elif [ `ps -ef | grep -c [V]ir` -gt 0 ]
then
echo "Stopping running processes before unloading Kernel Extensions"
ps -ef | grep [V]ir | awk '{print $2}' | xargs kill
fi
echo "Unloading Kernel Extensions"
kextstat | grep "org.virtualbox.kext.VBoxUSB" > /dev/null 2>&1 && sudo kextunload -b org.virtualbox.kext.VBoxUSB
kextstat | grep "org.virtualbox.kext.VBoxNetFlt" > /dev/null 2>&1 && sudo kextunload -b org.virtualbox.kext.VBoxNetFlt
kextstat | grep "org.virtualbox.kext.VBoxNetAdp" > /dev/null 2>&1 && sudo kextunload -b org.virtualbox.kext.VBoxNetAdp
kextstat | grep "org.virtualbox.kext.VBoxDrv" > /dev/null 2>&1 && sudo kextunload -b org.virtualbox.kext.VBoxDrv
}
load() {
echo "Loading Kernel Extentions"
sudo kextload "/Library/Application Support/VirtualBox/VBoxDrv.kext" -r "/Library/Application Support/VirtualBox/"
sudo kextload "/Library/Application Support/VirtualBox/VBoxNetAdp.kext" -r "/Library/Application Support/VirtualBox/"
sudo kextload "/Library/Application Support/VirtualBox/VBoxNetFlt.kext" -r "/Library/Application Support/VirtualBox/"
sudo kextload "/Library/Application Support/VirtualBox/VBoxUSB.kext" -r "/Library/Application Support/VirtualBox/"
}
case "$1" in
unload|remove)
unload
;;
load)
load
;;
*|reload)
unload
load
;;
esac
尝试安装virtualbox后运行此脚本。继续批准kexts,直到脚本干净利落:
运行brew cask reinstall --force virtualbox
感谢Dan Stroot提供解决方案。
答案 2 :(得分:0)
到目前为止的解决方案:
好的,这有点麻烦,但我们确实设法让它有点工作。
问题与系统没有从虚拟机安装中删除所有文件有关。
使用终端在文件名中搜索带有virtualbox的文件,我们发现了(非流浪汉相关的)文件仍在系统中。
问题是即使使用sudo也无法删除这些文件。因此我们必须按cmd + r重新启动系统,以便进入故障排除系统,而不是正常的操作系统环境。在那里,您可以打开终端并运行“csrutil disable”,然后重新启动系统。
这会关闭系统的系统完整性保护,因此不推荐使用它,但我们必须这样做才能删除以前无法删除的文件。
因此,在删除这些文件后,我们再次运行安装,现在它可以工作了!之后我立即尝试运行流浪汉,现在它按预期工作了。
我现在的最后一个问题是:在确定流浪汉正在工作之后,我再次按下cmd + r再次启动计算机,打开终端并运行“csrutil enable”并重新启动。
回到正常的OS X我尝试运行vagrant并再次出错。所以此刻我不得不再次回去,禁用csrutil,这是不推荐的,但是到目前为止这是唯一对我有用的东西。
我还没有尝试过再次运行这些步骤。
答案 3 :(得分:0)
所以......在经历了很多关于这个问题的努力之后,花了很多时间在堆栈溢出之后......我结合了一些答案,最终在我的10.13 osx中安装了virtualbox。
所以: 在我看来,Sierra有一个新的安全功能,可以阻止一些外部程序。在虚拟机安装期间,您可以检查首选项>安全与安全隐私>一般。你will see that Oracle (virtualbox) is being blocked。 所以,我做的是:
在终端运行此命令以禁用新的sierra网守:sudo spctl --master-disable
打开虚拟机安装程序,然后单击 unistall以确保没有先前安装尝试的痕迹。
(在此之后,您可以重新启用运行sudo spctl --master-enable
答案 4 :(得分:0)
llene的答案非常适合我。关键是,当你已经尝试安装但没有成功时,你必须完成以下步骤:
答案 5 :(得分:0)
管理解决它。
从以下位置弹出VirtualBox图像:Finder>设备
删除VirtualBox设备 现在允许例外:系统偏好设置>安全与安全隐私
然后再次尝试从.dmg安装,以便重新安装设备。 现在它对我来说很好。
答案 6 :(得分:0)
对于使用自制软件的用户,请运行'brew install caskroom / cask / virtualbox',这将首次失败。然后转到系统偏好设置>安全&隐私>如上所述的常规,其中,在底部,应该有关于被阻止的软件安装的消息。单击此消息旁边的“允许”按钮,然后返回终端。再次运行homebrew命令,这次它将起作用。
答案 7 :(得分:0)
运行出色的Disk Arbitrator
应用程序时,停用它-处于活动状态时,它会阻止所有安装并有选择地将它们重新安装为只读
例如,这可以防止Spotlight破坏USB驱动器,但(d-uh)
必须记住在适当的时候将其关闭。