下面为该目录添加写入权限和 sticky 标志。“Sticky” 标志使得即使有多个用户对该目录有写入权限,也只有文件所有者能够删除其中的文件。输入以下命令,启用写入权限和 sticky 标志:
chmod -v a+wt $LFS/sources
下面以 lfs 的身份登录。可以通过虚拟控制台或者显示管理器登录,也可以使用下面的命令切换用户:
su - lfs
参数 “-” 使得 su 启动一个登录 shell,而不是非登录 shell。您可以阅读 bash(1) 和 info bash 详细了解它们的区别。
set +h
set +h 命令关闭 bash 的散列功能。一般情况下,散列是很有用的 —— bash 使用一个散列表维护各个可执行文件的完整路径,这样就不用每次都在 PATH 指定的目录中搜索可执行文件。然而,在构建 LFS 时,我们希望总是使用最新安装的工具。因此,需要关闭散列功能,使得 shell 在运行程序时总是搜索 PATH。这样,shell 总是能够找到 $LFS/tools 目录中那些最新编译的工具,而不是使用之前记忆的另一个目录中的程序。
Binutils 将汇编器和链接器安装在两个位置,一个是 $LFS/tools/bin,另一个是 $LFS/tools/$LFS_TGT/bin。这两个位置中的工具互为硬链接。链接器的一项重要属性是它搜索库的顺序,通过向 ld 命令加入 --verbose 参数,可以得到关于搜索路径的详细信息。例如,ld --verbose | grep SEARCH 会输出当前的搜索路径及其顺序。此外,通过编译一个样品 (dummy) 程序并向链接器 ld 传递 --verbose 参数,可以知道哪些文件被链接。例如,gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded 将显示所有在链接过程中被成功打开的文件。
参考:
https://bf.mengyan1223.wang/lfs/zh_CN/11.0/LFS-BOOK.html