VirtualBox 安装失败 OSX 10.13

VirtualBox install failed in a clean OSX 10.13

我在 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";
}

我用谷歌搜索了这个,并在这里和那里找到了一些解决不同问题的线程。但到目前为止 none 对我有用。

我找到的一些帖子:

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

None 这些解决方案对我有用。

我没有安装 vmware,并尝试搜索要删除的 .match_kernel 文件,但无法在任何地方找到它。我没有在磁盘实用程序上选择分区的选项,因此无法对其进行修复磁盘权限。

我已经安装和卸载了不同的版本并在其间进行了冷启动以尝试查看是否有帮助。

感谢您的帮助!

目前的解决方案:

好的,这有点麻烦,但我们确实成功了。

该问题与系统未从虚拟盒安装中删除所有文件有关。

使用终端搜索文件名中带有virtualbox的文件,我们发现(非vag运行t相关)文件仍在系统中。

问题是即使使用 sudo 也无法删除这些文件。所以我们不得不按 cmd + r 重新启动系统,这样你就可以进入故障排除系统,而不是正常的 OS 环境。在那里,你可以打开终端和运行 "csrutil disable",然后重启系统。

这会为您的系统关闭系统完整性保护,因此不推荐这样做,但我们必须这样做才能删除我们之前无法删除的这些文件。

所以在删除这些文件后,我们 运行 再次安装,现在它成功了!紧接着我尝试了 运行ning vag运行t,现在它按预期工作了。

我现在的最后一个问题:在确保 vag运行t 正常工作后,我再次按 cmd + r 重新启动计算机,打开终端并 运行 "csrutil enable" 并重启。

回到正常 OS X 我尝试 运行 vag运行t 并再次出现错误。所以此刻我不得不再次回去,禁用 csrutil,这是不推荐的,但这是目前唯一对我有用的东西。

我还没有尝试 运行所有这些步骤。

我终于通过这里的建议解决了这个问题: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 }' | 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 "" in
        unload|remove)
                unload
                ;;
        load)
                load
                ;;
        *|reload)
                unload
                load
                ;;
esac

运行 这个脚本在你尝试安装 virtualbox 之后。继续批准 kexts,直到脚本干净地运行:

运行 brew cask reinstall --force virtualbox

感谢 Dan Stroot 的解决方案。

经过数小时的黑客攻击,我和我的同事找到了一个可行的解决方案。问题(至少对我而言)是当我去安装软件包时它被阻止了。您可以通过尝试安装来检查是否是这种情况,当它显示 'install failed' 时,转到您的安全和隐私(在系统偏好设置中)并转到 'general' 选项卡并靠近底部会说 oracle 应用程序被阻止。

这是我们想出的步骤**注意:如果您像我一样尝试下载或安装几次,您将希望首先使用 virtualbox 卸载工具卸载 virtualbox,您可以在下载的 . .dmg 文件。您还需要从您的设备中弹出 virtualbox(在 finder 的左侧面板中)。之后继续并按照以下说明操作:

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

所以..为此苦苦挣扎,并在堆栈溢出中花费了大量时间..我结合了一些答案,最终在我的 10.13 osx.[=13= 中安装了 virtualbox ]

所以: 据我所知,Sierra 有一个新的安全功能可以阻止一些外部程序。在 virtualbox 安装过程中,您可以检查 Preferences > Security & Privacy > General。你will see that Oracle (virtualbox) is being blocked。 所以,我所做的是:

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

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

  3. 在桌面或 finder 左侧边栏(在设备中)如果有任何 virtualbox 图像,您必须弹出它们
  4. 删除之前的virtualbox程序并下载一个新的.
  5. 现在,如果这些步骤对你有用,就像对我一样,你将能够安装 virtualbox。

(之后您可以重新启用网守功能运行 sudo spctl --master-enable

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

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

设法解决了。

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

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

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

对于那些使用自制软件的人,运行 'brew install caskroom/cask/virtualbox',第一次会失败。然后转到系统偏好设置>安全和隐私>常规,如上所述,在底部,应该有一条关于软件安装被阻止的消息。单击此消息旁边的 'Allow' 按钮,然后返回到您的终端。 运行 再次使用 homebrew 命令,这次它会起作用。

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