我在Ubuntu 12.04中创建了LFS 7.1,但问题出现在第6.4章:进入Chroot环境。我执行命令: chroot“$ LFS”/ tools / bin / env -i \ HOME = / root TERM =“$ TERM”PS1 ='\ u:\ w \ $'\ PATH = / bin:/ usr / bin:/ sbin:/ usr / sbin:/ tools / bin \ / tools / bin / bash --login + h 我没有创建符号链接/工具,只是为每个命令使用/ mnt / lfs / tools。 在我发布bash之后,我发现它的输出是:
root@ubuntu:/mnt/lfs/tools# ldd ./bin/env
linux-gate.so.1 => (0xb7703000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb754c000)
/mnt/lfs/tools/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7704000)
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
我不认为这本书包含了这个符号链接是可选的提示......
您需要在创建第一个工具链时使用该符号链接。只有这样,您才能在主机系统和chrooted系统中拥有相同的(读取:文本相同的)路径。这是在编译工具期间需要的,用于查找其他工具和库(“/ tools”)的路径将嵌入到刚刚创建的可执行文件中。 (不使用符号链接会导致在可执行文件中嵌入路径“/ mnt / lfs / tools”,这是chroot之后不再存在的路径)。
如果您不想回到第4.2章,可以尝试这样做:在lfs系统中创建路径/ mnt / lfs / tools,指向工具在chrooted系统中的位置。换句话说,创建另一个符号链接,就像这样(在主机系统中):
ln -s /tools /mnt/lfs/mnt/lfs/tools
(是的,第二个参数读取/ mnt / lfs / mnt / lfs / tools,它包含/ mnt / lfs两次)。 然后继续6.4进入Chroot ......
但更好(更清洁)的选择是删除第5章的结果并返回4.2。这次创建符号链接。