在干净的OSX 10.13

时间:2017-10-19 14:55:36

标签: macos installation virtualbox macos-high-sierra

我在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文件,但无法在任何地方找到它。我没有选择在磁盘实用程序上选择分区,因此无法对其执行修复磁盘权限。

我已经安装并卸载了不同的版本,并介于两者之间进行冷启动,试着看看是否会有所帮助。

感谢您的帮助!

8 个答案:

答案 0 :(得分:29)

在这个问题上经过数小时的黑客攻击后,我的同事和我找到了一个可行的解决方案。问题(对我来说至少)是当我去安装包时它被阻止了。您可以通过尝试安装来检查是否是这种情况,当它显示“安装失败”时,请转到您的安全和隐私(在系统首选项中)并转到“常规”选项卡,在底部附近会显示oracle应用程序被阻止。

以下是我们提出的步骤**注意:如果您尝试下载或安装这几次,就像我一样,您将首先使用虚拟机卸载工具卸载虚拟机,您可以在下载的.dmg文件中找到该工具。您还需要从设备中弹出virtualbox(在finder的左侧面板中)。然后继续并遵循这些说明:

  1. 下载VirtualBox 5.2安装程序
  2. 运行DMG,这会创建一个设备
  3. 尝试从.pkg文件安装,它将在验证步骤中失败
  4. 关闭安装程序并运行uninstaller.tool文件。请勿删除安装设备
  5. 转到系统偏好设置 - >安全和隐私 - >一般并批准“Oracle America”中的被阻止软件
  6. 从同一个.pkg文件运行安装,现在应该成功完成

答案 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,直到脚本干净利落:

enter image description here

运行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。 所以,我做的是:

  1. 在终端运行此命令以禁用新的sierra网守:sudo spctl --master-disable

  2. 打开虚拟机安装程序,然后单击 unistall以确保没有先前安装尝试的痕迹

  3. 如果有任何虚拟框图像,在桌面或发现者左侧边栏(设备中)中,您必须弹出
  4. 删除上一个虚拟空间计划并下载新虚拟
  5. 现在,如果这些步骤对您有用,那么您将可以安装virtualbox。
  6. (在此之后,您可以重新启用运行sudo spctl --master-enable

    的网守功能

答案 4 :(得分:0)

llene的答案非常适合我。关键是,当你已经尝试安装但没有成功时,你必须完成以下步骤:

  1. 运行VirtualBox安装程序
  2. 从.pkg文件运行安装,在验证步骤失败,没关系
  3. 关闭安装程序并再次运行,但现在选择内部的uninstaller.tool文件(不要删除安装设备)
  4. 从您的设备中弹出virtualbox(在finder的左侧面板中)
  5. 之后,转到系统偏好设置 - >安全和隐私 - >一般并批准来自“Oracle America”的封锁软件,该软件将出现在那里 6)从同一个.pkg文件再次运行安装。现在它应该成功完成

答案 5 :(得分:0)

管理解决它。

  • 从以下位置弹出VirtualBox图像:Finder>设备

  • 删除VirtualBox设备 现在允许例外:系统偏好设置>安全与安全隐私

然后再次尝试从.dmg安装,以便重新安装设备。 现在它对我来说很好。

答案 6 :(得分:0)

对于使用自制软件的用户,请运行'brew install caskroom / cask / virtualbox',这将首次失败。然后转到系统偏好设置>安全&隐私>如上所述的常规,其中,在底部,应该有关于被阻止的软件安装的消息。单击此消息旁边的“允许”按钮,然后返回终端。再次运行homebrew命令,这次它将起作用。

答案 7 :(得分:0)

运行出色的Disk Arbitrator应用程序时,停用它-处于活动状态时,它会阻止所有安装并有选择地将它们重新安装为只读 例如,这可以防止Spotlight破坏USB驱动器,但(d-uh) 必须记住在适当的时候将其关闭。