关于 /usr 和 /usr/local 的讨论

应该把程序安装在 /usr还是 /usr/local?

对于一个以LFS为基础的系统来说,这是一个没有明确答案的问题。

在传统的unix系统中,/usr通常只包含系统发行时自带的程序,而/usr/local则是本地系统管理员用来自由添加程序的目录。这里有一条严厉而牢固的规则:除非在里面创建目录,unix发行版不得使用/usr/local

对于Linux发行版,如 RedHat, Debian 等等,一个可能的规定是:/usr目录只能由发行版的软件包管理工具负责管理,而对/usr/local却没有这样做。正是因为采用这种方式,软件包管理工具的数据库才能知道在/usr目录内的每一个文件。

LFS的用户是自己建立系统的,所以能自己决定系统文件和用户文件的放置方式。因此,应该按照有利于系统管理员使用的方式作出选择。这里有几个把文件安装到/usr或者是/usr/local的理由:

一些人会问为什么不使用你自己的目录树,也就是使用/usr/site 而不是 /usr/local?

没有什么能阻止你,确实可以在很多地方创建自己的目录树,但这使安装新软件更加麻烦。自动化的安装程序通常要到/usr/usr/local目录下寻找所依赖的文件,如果要找的文件不在/usr目录里面,除非你指定目录让安装程序查找所依赖的文件,安装可能会失败。

那么在BLFS中软件的安装位置在那里?

除非特别声明,所有BLFS中的软件都安装在/usr目录下。也有一些文件被放在/usr/local目录下,但它们只是文档并且有足够的理由这样做。这些例外的情况都会在本书中得到很好的说明,如果发现有不对的地方,请告诉我们!