Lfs

LFS 6.7 /bin/sh 命令未找到

  • October 9, 2019

我正在建構 LFS 9.0 並已達到第 6.7 章。執行 make mrproper 時,我得到輸出:

make: /bin/sh: Command not found
...(above repeated ~20 times)...
make: /bin/sh: Command not found
Makefile:649: arch//Makefile: no such file or directory
make: *** No rule to make target 'arch//Makefile'. Stop.

我已經嘗試重新啟動、重新掛載文件系統並按照 6.2 和 6.4 中的描述進入系統。我還嘗試在重新啟動之前和之後重新製作 /bin/sh 符號連結。我認為我正確地遵循了這本書自從重新啟動後,我執行了以下命令

mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -vt proc proc $LFS/procmount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run

chroot "$LFS" /tools/bin/env -i HOME=/root TERM="$TERM" PS1='(lfs chroot) \u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h

ln -sv /tools/bin/{bash,cat,chmod,dd,echo,ln,mkdir,pwd,rm,stty,touch} /bin
ln -sv /tools/bin/{env,install,perl,printf} /usr/bin
ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
ln -sv /tools/lib/libstdc++.{a,so{,.6}} /usr/lib
ln -sv bash /bin/sh

under /sources/linux-5.2.8 ran
makr mrproper

更新:取消連結 bash 和 sh 然後重新執行“ln -sv bash /bin/sh”後,我回到了原始輸出。我執行“find /bin -type l -ls”來獲取 .bin 中的符號連結列表,它為 /bin/sh 返回了這個:

/bin/sh -> bash

在製作第一輪符號連結時,我打錯了 bash。通過取消連結 bash 和 /bin/sh 並重新執行“ln -sv /tools/bin/bash /bin”然後“ln -sv bash /bin/sh”來修復

引用自:https://unix.stackexchange.com/questions/545950