
我正在從頭開始建立 Linux(指南版本 10.1)。一切都編譯沒有任何錯誤,但我現在陷入了需要我進入 chroot 環境的步驟(第 7.4 節)。我的命令如下:
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login +h
它失敗並出現以下錯誤:
chroot: failed to run command ‘/usr/bin/env’: No such file or directory
我已經檢查了以下事項:
$LFS 指向正確的路徑
/dev、/run、/proc、/sys、/dev/pts 和 /dev/shm 都已正確安裝
/usr/bin/env 存在
/bin/bash 存在
/bin/sh 是 /bin/bash 的符號鏈接
/bin/bash 和 /usr/bin/env 將所有相依性安裝到 /lib 和 /lib64 (使用 ldd 檢查)
另外,我想指出,我是在 x86-64 上使用 Linux 核心 5.4 在 Ubuntu 20.04 上針對 x86-64 進行此建置。
答案1
我發現問題了!這是一個錯誤的符號連結(/lib64/ld-linux-x86-64.so.2 指向主機系統上的絕對路徑,而不是相對於 LFS 根 /lib/ld-2.36.so)。令人遺憾的是 chroot 給了我這樣一個誤導性和模糊的錯誤訊息,而不是澄清什麼地方出了問題。我更改了鏈接,現在它工作得很好。
答案2
我解決了同樣的問題,但我無法理解您的意思,
(/lib64/ld-linux-x86-64.so.2 pointed to the absolute path on the host system, not relative to the LFS root, /lib/ld-2.36.so)
您能解釋一下有關解決方案的更多資訊嗎?以及如何更改連結?我想指出我正在建立 x86-64 作業系統。
5.5. Glibc-2.34
主機 usr/bin/env:
COLORTERM=truecolor DISPLAY=:0.0 LANG=en_US.UTF-8 LANGUAGE= PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /local/games:/usr/games TERM=xterm-256color XAUTHORITY=/home/kali/.Xauthority LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33 :so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30 ;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.弧=01;31:.arj=01;31:.taz=01;31:.lha=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.tzo=01;31:.t7z=01;31:.zip=01;31:.z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=01;31:.zst=01;31:.tzst=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.alz=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.cab=01;31:.wim=01;31:.swm=01;31:.dwm=01;31:.esd=01;31:.jpg=01;35:.jpeg=01;35:.mjpg=01;35:.mjpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.webp=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.m4a=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.oga=00;36:.opus=00;36:.spx=00;36:.xspf=00;36: MAIL=/var/mail/root LOGNAME=root USER=root HOME=/root SHELL=/usr/bin/zsh SUDO_COMMAND=/usr/bin/su SUDO_USER=kali SUDO_UID=1000 SUDO_GID=1DO_USER=kali SUDO_UID=1000 SUDO_GID=1000 LFS=/mnt/lfs COMMAND_NOT_FOUND_INSTALL_PROMPT=1 POWERSHELL_TELEMETRY_OPTOUT=1 DOTNET_CLI_TELEMETRY_OPTOUT=1 SHLVL=1 PWD=/usr/bin OLDPWD=/~ TER MCAP_se= LESS_TERMCAP_us=
LESS_TERMCAP_ue = _=/usr/ bin /./env
LFS usr/bin/env:
PWD=/ HOME=/home/lfs TERM=xterm-256color SLVL=1 PS1=${debian_chroot:+($debian_chroot)}\u@\h:\w$ LFS_TGT=x86_64-lfs-linux-gnu LC_ALL=SIX LFS=/mnt/lfs CONFIG_SITE=/mnt/lfs/usr/share/config.site PATH=/mnt/lfs/tools/bin:/usr/bin _=./usr/bin/env OLDPWD=/home
答案3
@lorinet3 我遇到了同樣的問題。我查了一下,連結是相對的。
$ echo $LFS
/home/sayan/lfs/lfs_filesystem
$ exa -l $LFS/lib64
lrwxrwxrwx 27 root 6 Jun 11:43 ld-linux-x86-64.so.2 -> ../lib/ld-linux-x86-64.so.2
lrwxrwxrwx 27 root 6 Jun 11:43 ld-lsb-x86-64.so.3 -> ../lib/ld-linux-x86-64.so.2
我正在 x86_64 機器上遵循 LFS 11.1 指南。我仍然遇到同樣的錯誤。還有什麼可以打破的?