%general-entities; ]> 通用构建说明 在构建软件包时,本书提供的命令基于下列假设: 某些软件包在编译前需要打补丁,然而补丁只在绕过特定问题时才需要。 多数补丁在本章和下一章都要应用,然而个别时候只在其中一章使用。 因此,如果发现本书给出的指示中没有使用某个下载好的补丁, 这是正常的,不必担心。 在应用补丁时可能会出现关于 offset 或者 fuzz 的警告信息,不用担心这些警告, 补丁还是会成功应用到源码上的。 在编译大多数软件包时,屏幕上都会出现一些警告。这是正常的, 可以放心地忽略。这些警告就像它们描述的那样,表明一些过时的, 但并不是错误的 C 或 C++ 语法。C 标准经常改变, 一些软件包仍然在使用旧的标准。这并不是一个严重的问题, 但确实会触发警告。 最后确认 LFS 环境变量是否配置正确: echo $LFS 确认上述命令输出 LFS 分区挂载点的路径,如果使用了本书的例子, 就是 /mnt/lfs 最后强调两个重要事项: 本书中的命令假设 中的所有内容, 包括符号链接,都被正确设置: bash 是正在使用的 shell。 sh 是指向 bash的符号链接。 /usr/bin/awk 是指向 gawk 的符号链接。 /usr/bin/yacc 是指向 bison 的符号链接,或者一个执行 bison 的小脚本。 再次强调构建过程: 把所有的源码包和补丁放在一个能够从 chroot 环境访问的目录, 例如 /mnt/lfs/sources/不要 把源代码放在 /mnt/lfs/tools/ 中。 切换到放着源码包的目录。 对于每个软件包: 使用 tar 程序,解压需要构建的软件包。 在第 5 章中解压软件包时,确认您以用户 lfs 的身份登录。 切换到解压源码包时产生的目录。 根据书中的指示构建软件包。 切换回包含所有源码包的目录。 除非另有说明,删除解压出来的目录。