閱讀367 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《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 切換進去的環境裏所有變量。隨後,隻重新設定了 HOMETERMPS1PATH 變量。TERM=$TERM 語句會設定 chroot 進入的環境裏的 TERM 變量為進入前該變量同樣的值。許多程序需要這個變量才能正常工作,比如 vimless。如果還需要設定其他變量,比如 CFLAGSCXXFLAGS,就在這裏一起設定比較合適。

從這裏以後,就不再需要 LFS 變量了,因為後麵所有工作都將被限定在 LFS 文件係統裏。這是因為我們已經告訴 Bash 終端 $LFS 就是當前的根目錄(/)。

請注意 /tools/bin 放在了 PATH 變量的最後。意思是在每個軟件的最後版本編譯安裝好後就不再使用臨時工具了。這還需要讓 shell 不要“記住”每個可執行文件的位置—這樣的話,還要給 bash 加上 +h 選項來關閉其哈希功能。

注意一下 bash 的提示符是 I have no name!。這是正常的,因為這個時候 /etc/passwd 文件還沒有被創建。

[Note]

注意

非常重要,本章從這以後的命令,以及後續章節裏的命令都要在 chroot 環境下運行。如果因為某種原因(比如說重啟)離開了這個環境,請保證要按照 6.2.2,“掛載和激活 /dev”6.2.3,“掛載虛擬內核文件係統”裏所說的那樣掛載虛擬內核文件係統,然後在繼續構建之前重新運行 chroot 進入環境。



創建者:Gerard Beekmans
編輯者:Matthew Burgess 和 Armin K.
翻譯團隊:LCTT
譯者/校對:zpl1025,wxy

最後更新:2017-11-07 17:04:01

  上一篇:go  《Linux From Scratch》第三部分:構建LFS係統 第六章:安裝基本的係統軟件- 6.5. 創建目錄
  下一篇:go  《Linux From Scratch》第三部分:構建LFS係統 第六章:安裝基本的係統軟件- 6.3. 軟件包管理