OS X 无法分离卷,hdiutil 错误

OS X cannot detach volume, hdiutil error

我需要从命令行安装 Java。这就是我正在尝试的:

hdiutil attach javaforosx.dmg
cd /Volumes/Java\ for\ OS\ X\ 2015-001/
sudo installer -pkg JavaForOSX.pkg -target "/"
sudo hdiutil detach hdiutil detach /Volumes/Java\ for\ OS\ X\ 2015-001/

最后一步失败,错误信息:

hdiutil: couldn't unmount "disk2" - Resource busy

此外,如果我现在转到我的桌面并手动尝试弹出关于 Java 显示的磁盘映像(右键单击 -> 弹出)它说我无法弹出它,终端正在使用它。我必须关闭终端,然后才能弹出磁盘。

如何从命令行正确执行此操作?

您也需要退出图像目录。可能如果您将 cd 更改为 pushd,然后在执行 hdiutil detach 之前先执行 popd。 这将返回到您的工作目录。所以只需将您的脚本更改为:

hdiutil attach javaforosx.dmg
pushd /Volumes/Java\ for\ OS\ X\ 2015-001/
sudo installer -pkg JavaForOSX.pkg -target "/"
popd
sudo hdiutil detach /Volumes/Java\ for\ OS\ X\ 2015-001/

另外,请注意,如果您有 homebrew installed, you can use cask 也可以从命令行安装 java。喜欢:

brew cask install java7

这还将处理下载细节和