/usr 与 /usr/local 之争

我该把 XXX 安装在 /usr 还是 /usr/local

对于基于 LFS 的系统,这个问题没有显而易见的答案。

在传统的 Unix 系统中,/usr 通常包含随系统发行版提供的文件,而 /usr/local 目录树则供本地管理员自由管理。唯一真正硬性的规则是,Unix 发行版不应触碰 /usr/local,除了可能在其中创建基本目录之外。

对于 Red Hat、Debian 等 Linux 发行版,一条可能的规则是:/usr 由发行版的软件包系统管理,而 /usr/local 则不由其管理。这样,软件包管理器的数据库就能了解 /usr 中的每一个文件。

LFS 用户构建自己的系统,因此决定系统止于何处、本地文件始于何处并非易事。所以,应该以便于管理为原则进行选择。将文件分割到 /usr/usr/local 之间有若干理由。

有人会问,为什么不用自己的目录树,例如 /usr/site,而要用 /usr/local

这并不禁止您这样做,许多站点确实会创建自己的目录树,但这会增加安装新软件的难度。自动安装程序通常会在 /usr/usr/local 中查找依赖项,如果要找的文件位于 /usr/site 中,安装程序很可能会失败,除非您专门告诉它去哪里查找。

BLFS 对此持什么立场?

所有 BLFS 说明都将程序安装在 /usr 中,并针对某些特定软件包提供安装到 /opt 的可选说明。