根据文件系统层次结构标准,/usr/local 应用于“特定于此主机的本地数据”。但我不太明白这一点,因为整个文件系统通常不是位于主机本地吗?即 /bin 包含二进制文件,一般来说,这些二进制文件仅用于调用此主机上的进程。第二台主机将拥有自己的二进制文件副本,尽管如果您对它们进行差异处理,它们实际上可能相同。
那么,您能解释一下“本地数据”的含义吗?它在什么意义上是本地的?
答案1
因为整个文件系统通常不是位于主机本地吗?
不,在网络上共享只读部分(例如全部/usr
甚至整个)实际上很常见。/
虽然我认为这不是重点。“特定于此主机”也可以意味着未由发行提供– 它是您手动构建和安装的软件,而不是 /usr 的其余部分包含通用打包文件(在许多主机上确实是相同的)。
例如,许多源代码构建系统使用/usr/local
为默认安装位置。如果您只运行./configure && make && make install
,它将把所有内容转储到 /usr/local/bin 等位置。
答案2
扩展@grawity 的答案:
“本地”一词源于只有一个 UNIX 的时代。在这种情况下,运行相同版本的所有系统将拥有大量在所有主机之间相同的文件,因此只有少数其他文件在主机之间有所不同。
这些非通用文件要么是 中的配置数据/etc
,要么是 中的可选文件/opt
,要么是“其他的,主机本地的东西” - 即*/local
。
在现代,当 UNIX 家族树中有 (截然不同的) 成员且操作系统的存储要求仅占通常可用的总存储量的一小部分时,许多操作系统都有不同的风格 (*BSD、Linux 发行版),“本地”一词已被淡化,甚至可能成为历史遗物。