达尔文有一个private
目录,我在 Unix 文档中没有看到我已经找到了这是 Mac 特定的目录吗?它是做什么用的?系统升级之间是否保留?
答案1
/private 是标准 unix 文件系统层次结构的一部分的容器,这些层次结构在各个计算机之间可能有所不同(例如 /etc 是到 /private/etc 的符号链接,实际的配置文件位于此处)。 AIUI 最初这样做是为了支持 NextSTEP 下的网络启动。这个想法是 / 将是一个网络安装的共享驱动器,并且本地卷将安装在 /private 上以存储每台计算机的文件(请参阅之前的 apple.se 答案)。这种需求早已过去,但该组织却因惯性而停滞不前。
至于升级过程中的处理:升级过程中大部分保持不变,但可能会进行修改。例如,以下是 10.8.2 更新中新的/更改的文件的列表:
$ pkgutil --payload-files OSXUpd10.8.2.pkg | grep ./private
./private
./private/etc
./private/var
./private/var/db
./private/var/tmp
./private/var/tmp/DeferredInstallFixup.file_list
./private/var/db/.SystemPolicy-default
./private/var/db/dslocal
./private/var/db/dslocal/nodes
./private/var/db/dslocal/nodes/Default
./private/var/db/dslocal/nodes/Default/groups
./private/var/db/dslocal/nodes/Default/groups/_assetcache.plist
./private/var/db/dslocal/nodes/Default/users
./private/var/db/dslocal/nodes/Default/users/_assetcache.plist
./private/var/db/dslocal/nodes/Default/users/_geod.plist
./private/var/db/gke.auth
./private/var/db/gke.sigs
./private/etc/authorization.merge
请注意, /private/var/db/dslocal/nodes/Default/ 相当于 OS X 上标准 UNIX 系统上的 /etc/passwd、/etc/groups 等,因此安装所做的是创建(或替换,如果它们已经存在)用户 _assetcache 和 _geod 以及组 _assetcache。其他用户和组将保留在原处。
此外,上面的列表可能不完整。它仅显示直接包含在更新有效负载中的文件,而不显示将由安装程序中包含的脚本修改的文件。