返回

文章详情

/pkg 到底是什么?

Hacker News2026年10月18日 17:21

2026年10月18日 最近,在排除 PATH 问题时,我注意到有一个条目指向 /pkg/env/global/bin。起初,我担心会有什么严重的问题。结果发现,这实际上是 macOS 27.0 的一部分……尽管目前还没有人确定它的用途。首先,一些背景信息。自2007年 Mac OS X 10.5 以来,操作系统中包含了一个 path_helper 工具。它读取 /etc/paths 中的条目以及 /etc/paths.d 目录中的任何文件。虽然理论上可以利用这个系统,但我(我猜大多数人也是如此)使用 .zshrc 文件或类似的方式来添加新的 PATH 条目。path_helper 工具似乎主要是苹果使用的。在 macOS 10.15 中,/etc/paths.d 中添加了一个条目,以支持 rvictl 工具的新位置。在 macOS 13.3 中,苹果添加了一些新条目以支持 Cryptexes。现在,在 macOS 27.0 中,新增了 10-pmk-global 文件,它将 /pkg/env/global/bin 添加到 PATH 列表中。当我注意到 PATH 中有一个以 /pkg 开头的陌生条目时,我才开始查看这个情况。我以为出现了问题。然后我看到,确实在我的文件系统根目录中有一个 /pkg 目录。在略微惊慌之后,我深入研究了这个问题。在一篇关于 macOS 启动卷结构更新的文章中,霍华德·奥克利解释说,pkg 目录是在 macOS 26.4 的数据卷中添加的,但直到 27.0 才被添加到签名系统卷的根目录中。他还指出,这确实是一个大事件。奇怪的是,据我所知,没有人似乎知道这个新目录的用途!苹果更新他们的文件系统结构,添加到每个人的 PATH 中,而没有任何可以解释的原因,这真是奇怪。/pkg 目录包含四个子目录:env、etc、inv 和 var。根据它的名称和这些子目录,可以推测这可能用于即将推出的第一方包管理系统——但这完全是个猜测。苹果最近接管了 Swift Package Index,但这似乎与之无关。我不知道为什么你需要一个根级目录来帮助处理项目级依赖关系。/etc/paths.d/10-pmk-global 中的 “pmk” 也不清楚是指什么。希望我们能在某个时候获得更多关于这个的细节。与此同时,也许这些细节可以帮助防止其他人看到这个 PATH 中的条目时感到惊慌。这里的文件名中的“10”部分是为了帮助设定优先级。以较低数字开头的文件首先会被添加到 PATH 中,因此优先级更高。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡