LFS 中构建或安装的每一个包或多或少都会依赖于其它的包,甚至有些包甚至是循环依赖关系:第一个包依赖于第二个包,反过来,第二个包的生成或者是安装又需要第 一个包。因为存在这些依赖关系,所以在构建 LFS 系统的时候,软件包的编译或安装的顺序是十分重要的。本章的目的就是告知用户在构建 LFS 时每一个包的依赖项。
对于所有需要编译的软件包,我们列举出三种或者四种类型的依赖。第一种类型是 “安装必选依赖”,否则在编译和安装的时候会出现问题。第二类是 “测试套件依赖”,假如运行一些测试套件,除了第一类的必须安装外,第二类也需要安装。第三类是 “必须之前安装”,此类需要在编译和安装之前就安装。在大多数情况下,是因为它们软件包中的脚本包含有到二进制文件的硬编码。如果不按照顺序编译它们,将会导致 /tools/bin/[binary] 路径变为真实路径写入脚本,然后安装到最终系统中去,这显然是不合适的。 (译者注:这句话写的不是太清楚,大概解释一下:在真实系统中,可能会在某些脚本 中出现这样的路径信息:/usr/bin/vi,但是假如因为安装顺序的问题,这个路径就有可能变成 /tools/usr/bin/vi,最终导致脚本不能正常的运行,这显然是错误的。)
最后一类提及的 “可供选择依赖”,安装方法在此文档类并没有提及,但是这些程序往往对用户来说又都是极其有用。这些软件包可能又有属于自己的 “安装必选依赖” 或者是 “可用选择依赖”。对于这些依赖关系,推荐的做法是在学习完本书之后回到重建 LFS 包。在大多数情况下,重新安装的问题都记录在 BLFS 中。