前提条件

已下载好的 .dmg 文件(例如 HexHub-1.3.1.dmg)

终端(Terminal)访问权限

步骤一:挂载 DMG 文件

打开终端,使用 hdiutil attach 命令挂载镜像:

hdiutil attach /path/to/your/file.dmg

示例(假设文件在下载文件夹):

hdiutil attach ~/Downloads/HexHub-1.3.1.dmg

执行后会显示挂载的卷标,例如:

/dev/disk4 Apple_HFSX /Volumes/HexHub-1.3.1

记下卷标路径(例如 /Volumes/HexHub-1.3.1),后续步骤会用到。

步骤二:复制应用到应用程序文件夹

查看挂载卷中的内容(可选):

ls /Volumes/HexHub-1.3.1

确认应用名称(通常是 .app 结尾,例如 HexHub.app)。

复制应用到 /Applications:

cp -R "/Volumes/HexHub-1.3.1/HexHub.app" /Applications/

如果卷标名称包含空格或特殊字符,请使用双引号括起来。

步骤三:卸载 DMG 镜像

复制完成后,可以卸载镜像以释放资源:

hdiutil detach "/Volumes/HexHub-1.3.1"

如果提示“资源忙”无法卸载

可能的原因是终端当前工作目录仍在挂载卷内,或 Finder 正在使用该卷。

解决方法 1:切换当前目录到其他位置:

cd ~

然后再次执行 hdiutil detach。

解决方法 2:使用 -force 强制卸载:

hdiutil detach "/Volumes/HexHub-1.3.1" -force

解决方法 3:通过磁盘标识符卸载:

hdiutil info | grep -A 5 "HexHub"

找到类似 /dev/disk5 的设备名,然后:

hdiutil detach disk5 -force

解决方法 4:重启 Finder(若 Finder 占用了卷):

killall Finder

然后重试卸载。

步骤四:移除隔离属性(关键)

macOS 会对从网上下载的应用添加“隔离”标记,导致双击无法打开。使用 xattr 命令移除该标记:

xattr -d com.apple.quarantine /Applications/HexHub.app

如果成功,命令不会有输出。如果提示 No such xattr,说明该应用本来就没有隔离标记,可以跳过此步骤。

验证隔离标记是否已移除(可选)

xattr /Applications/HexHub.app

正常情况应该不再显示 com.apple.quarantine。

步骤五:打开应用

现在可以正常双击 /Applications/HexHub.app 启动。如果仍提示“无法打开”,可以尝试右键点击应用,选择“打开”,然后在弹出的对话框中确认“打开”。

常见问题

Q:安装后应用闪退或无法运行?

确保已移除隔离标记。

检查应用是否需要额外权限(例如辅助功能、完全磁盘访问),可在“系统设置 → 隐私与安全性”中授予。

部分应用可能需要安装 Xcode 命令行工具或其他依赖。

Q:复制时提示“权限不足”?

使用 sudo 提升权限:sudo cp -R "/Volumes/.../App.app" /Applications/

但一般不需要,因为 /Applications 普通用户可写入。

Q:如何彻底删除手动安装的应用?

直接删除 /Applications 中的 .app 即可:rm -rf /Applications/HexHub.app