《Linux From Scratch》第三部分:構建LFS係統 第六章:安裝基本的係統軟件- 6.4. 進入 Chroot 環境
現在可以切換到 chroot 環境開始構建和安裝最終的 LFS 係統了。以 root
用戶運行下麵的命令進入這個“空間”,目前,裏麵隻入住了之前準備的臨時工具:
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
給 env 命令傳遞 -i
選項會清除這個 chroot 切換進去的環境裏所有變量。隨後,隻重新設定了 HOME
、TERM
、PS1
和 PATH
變量。TERM=$TERM
語句會設定 chroot 進入的環境裏的 TERM
變量為進入前該變量同樣的值。許多程序需要這個變量才能正常工作,比如 vim 和 less。如果還需要設定其他變量,比如 CFLAGS
或 CXXFLAGS
,就在這裏一起設定比較合適。
從這裏以後,就不再需要 LFS
變量了,因為後麵所有工作都將被限定在 LFS 文件係統裏。這是因為我們已經告訴 Bash 終端 $LFS
就是當前的根目錄(/
)。
請注意 /tools/bin
放在了 PATH
變量的最後。意思是在每個軟件的最後版本編譯安裝好後就不再使用臨時工具了。這還需要讓 shell 不要“記住”每個可執行文件的位置—這樣的話,還要給 bash 加上 +h
選項來關閉其哈希功能。
注意一下 bash 的提示符是 I have no name!
。這是正常的,因為這個時候 /etc/passwd
文件還沒有被創建。
![[Note]](https://res.3425.com.cn/aliyunqi/20171107/151004544018.png)
注意
非常重要,本章從這以後的命令,以及後續章節裏的命令都要在 chroot 環境下運行。如果因為某種原因(比如說重啟)離開了這個環境,請保證要按照 6.2.2,“掛載和激活 /dev” 和 6.2.3,“掛載虛擬內核文件係統”裏所說的那樣掛載虛擬內核文件係統,然後在繼續構建之前重新運行 chroot 進入環境。
最後更新:2017-11-07 17:04:01