LFS (版本6.1.1) 安裝心得(轉)

ba發表於2007-08-16
LFS (版本6.1.1) 安裝心得(轉)[@more@]---前序:

好多年前,安裝過早期的Slackware.

兩三年前安裝過RedHat9.

基本上就是安裝好後, 進桌面系統打一下小遊戲,然後就刪除掉.因為我的硬碟一直很小,20G.

當然一個很主要的原因是我不喜歡這些發行版中一大堆的東西,太亂,看不明白怎麼組織的.

前幾天換了40G硬碟,於是劃分了8G安裝了Debian.裝好了後一看也是一大堆的軟體,各式各樣.正要準備刪除.

不知道在哪裡看到了LFS一下,頓時被吸引了,於是計劃安裝一個LFS.而Debian正好作為host system.

下面是我的安裝心得,花了周5,周6兩個通宵. (glibc, gcc, firefox, Xorg耗時很多,在筆記本上安裝.)

寫點自己的體會,主要是整理自己對LFS安裝過程的理解, 特別是ld和gcc的多次編譯.


----目標:

為了建立一個乾淨的LFS系統.


----實現的大步驟:

1. 儘可能的擺脫host system的影響, 首先建立一個最基本的自治的Toolchain.

這個Toolchain中最基本的需要是: binutils(最基本的binary工具), gcc(編譯器), glibc(函式庫)

因為其它的tools就可以由這三個建立出來了.

2. 當所有的基本Toolchain工具準備好了,就可以chroot.

3. 在Chroot後的虛擬根/環境下, 用toolchain中的工具生成出最後的LFS系統.


---一個說明:

為什麼要建立/tools這個link

初始的Toolchain工具建立在/mnt/lfs/tools目錄下.

同時為了將來chroot後, 工具中的Interpreter資訊仍然指向正確,使用了一個小技巧.

在host system中的/目錄下建立一個名為tools的link, 指向/tools --&gt /mnt/lfs/tools

這個作用打個比方來說就是,當我們在使用host system的時候,我們可以使用/tools/bin/ld找到ld程式,

將來chroot後,/tools/bin/ld還是能找到這個ld.

否則我們在使用host system的時候,使用/mnt/lfs/tools/bin/ld來找到ld,

換句話說生成的程式包含/mnt/lfs這樣的資訊,將來chroot之後,可就不太好了.


----符號說明:

(為了行文方便)

bin-0 -----&gt host system的binutils

ld-0 -----&gt host system 的ld

bin-1 -----&gt 第一遍編譯出的binutils

ld-1 -----&gt bin-1中的ld

ld-a -----&gt 第一次調正後的ld

bin-2 -----&gt 第二遍編譯的binutils

ld-2 -----&gt bin-2中的ld

ld-b -----&gt 第二次調正後的ld

bin-3 -----&gt 第三遍編譯生成的binutils

ld-3 -----&gt bin-3中的ld

gcc-0, gcc-1, gcc-2, gcc-3分別表示host system中的gcc, 和Toolchain中的兩遍gcc和最後LFS系統的gcc.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961573/,如需轉載,請註明出處,否則將追究法律責任。

相關文章