双击.pkg文件无反应或提示“已损坏”是因macos gatekeeper拦截非app store来源安装包;可通过图形界面双击安装、终端命令行安装(sudo installer -pkg ...)、安装到外接卷或解除gatekeeper限制解决。

当你从官网或可信渠道下载了一个以.pkg为后缀的Mac安装包,却双击没反应、提示“已损坏”或卡在密码输入环节,说明系统安全策略、目标卷状态或包本身完整性可能出了问题。这不是文件坏了,而是macOS默认阻止了非App Store来源的安装行为。
图形界面双击安装(最常用)
这一步操作起来很简单,直接双击.pkg文件就能启动内置安装向导,适合绝大多数标准软件,比如Keka、Homebrew Cask安装器等。
在“访达”中定位到.pkg文件,它通常出现在“下载”文件夹或桌面,图标是一个带箭头的方盒。
双击该文件,系统自动调用“安装程序”应用,首屏显示软件名称与版本信息。
点击“继续”→滚动阅读许可协议到底部→点击“同意”。
确认安装位置,默认是“Macintosh HD”,【切勿随意改为外接硬盘或Time Machine备份盘,否则可能因权限或路径异常导致安装中断】。
点击“安装”,弹出管理员密码框——必须输入当前账户的登录密码(不是Apple ID密码),输入时无任何字符显示,属正常安全机制。
终端命令行安装(绕过图形界面)
当图形界面卡死、远程部署、或需要批量安装时,用终端执行installer命令更可靠。它不依赖GUI进程,输出明确,失败时能立刻看到报错原因。
打开“终端”,可用Command + 空格搜索“终端”后回车。
输入命令:sudo installer -pkg /path/to/your.package.pkg -target /,把/path/to/your.package.pkg替换成实际路径——最省事的方式是把.pkg文件直接拖进终端窗口,路径会自动填充。
回车后输入管理员密码(同样无视觉反馈),等待终端返回“The installation was successful”即完成。
安装到外接硬盘或备用卷
只有明确需要将软件部署到非系统卷(如已挂载的SSD、USB硬盘)时才走这条路。系统卷用-target /,外接卷必须写全挂载路径,漏一个字符都会报错“target not found”。
第一步:先确认目标卷是否已挂载,运行命令:ls /Volumes/。
第二步:观察输出中是否存在目标卷名称(如MyBackupDrive),注意大小写和空格——Mac对卷名区分大小写,且空格会被转义为\ 。
第三步:执行安装命令,将MyBackupDrive替换为实际卷名:sudo installer -pkg /path/to/your.package.pkg -target /Volumes/MyBackupDrive。
验证pkg包完整性再安装
如果你怀疑下载过程出错或担心来源不可信,先验包再装能避免误装恶意软件或损坏包。
方法一:查看基础元信息
运行命令:installer -pkginfo -pkg /path/to/your.package.pkg。
重点关注identifier(如com.keka.Keka)、version及scripts字段是否存在可疑项。
方法二:检查合法安装目标
运行命令:installer -dominfo -pkg /path/to/your.package.pkg。
输出中仅标记为“can be targeted: YES”的卷才支持安装,其他卷即使存在也无法被installer识别为有效目标。
解除Gatekeeper拦截(当提示“已损坏”或“无法打开”)
这是macOS默认启用的安全机制,拦截所有未签名或非App Store来源的.pkg包。解决办法是临时放行“任何来源”。
打开“系统设置”→“隐私与安全性”→下滑到底部“安全性”区域。
如果看到“允许从以下位置下载的应用”选项,并且其中没有“任何来源”,则需启用它。
打开终端,输入:sudo spctl --master-disable,回车并输入管理员密码。
回到“隐私与安全性”页面,此时应能看到“任何来源”选项,点击启用它——【启用后无需重启,立即生效】。











