一、macOS 中 .pkg 安装包的默认安装路径解析
在 macOS 系统中,.pkg 安装包通常遵循 Apple 的安装规范,但开发者也可以根据需要自定义路径。默认情况下,应用程序会被安装到以下目录之一:
/Applications:适用于用户级应用程序,如 Adobe、Microsoft Office 等。/Library/Application Support:用于存放应用程序的资源文件、配置文件或后台服务。/System/Library:系统级组件或框架,通常由 Apple 或受信任的软件安装。/Users/Shared:多用户共享的数据或临时文件。
然而,随着 macOS 版本的更新(如从 High Sierra 到 Ventura),Apple 对系统路径的权限控制越来越严格,尤其是 /System 分区在 macOS Catalina 之后被设为只读。
二、如何查找 .pkg 安装后的实际路径?
对于开发者或系统管理员来说,了解软件实际安装路径是排查问题或进行卸载的关键。以下是几种有效的方法:
查看安装日志:在安装过程中,macOS 会生成安装日志文件,通常位于:/var/log/install.log。使用命令行工具:通过 pkgutil 命令查看已安装的包信息:pkgutil --pkgs 或 pkgutil --files
三、macOS 不同版本对安装路径的影响
随着系统版本的演进,Apple 对系统路径的访问权限进行了加强,这对 .pkg 安装行为产生了直接影响:
macOS 版本主要变化影响路径建议处理方式High Sierra 及更早路径权限较宽松/System/Library, /usr可直接写入Mojave引入 SIP(系统完整性保护)/System, /usr需禁用 SIP 才能写入Catalina 及以后系统分区只读,引入 APFS 快照机制/System, /usr, /bin, /sbin应避免写入系统路径,建议使用 /Library 或 /Applications
四、排查安装失败或路径不可见的常见原因
当 .pkg 安装失败或安装路径不可见时,可能涉及以下原因:
权限不足:未以管理员身份运行安装程序。SIP 限制:尝试写入受保护路径。路径冲突:已有同名文件或目录存在。磁盘空间不足或文件系统损坏。安装脚本错误:自定义的 preinstall 或 postinstall 脚本执行失败。
五、彻底卸载 .pkg 安装的软件
由于 .pkg 安装包可能将文件分散到多个路径,手动卸载容易遗漏。以下是推荐做法:
使用 pkgutil --forget
六、.pkg 安装路径分析的流程图
graph TD
A[开始安装 .pkg] --> B{是否成功?}
B -- 否 --> C[查看 /var/log/install.log]
B -- 是 --> D[使用 pkgutil 查询安装路径]
D --> E[确认文件是否写入正确路径]
E --> F{路径是否在受保护区域?}
F -- 是 --> G[检查 SIP 设置]
F -- 否 --> H[继续使用]
G --> I[临时禁用 SIP]
I --> J[重新安装]