LFS (版本6.1.1) 安裝心得(轉)
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 --> /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 -----> host system的binutils
ld-0 -----> host system 的ld
bin-1 -----> 第一遍編譯出的binutils
ld-1 -----> bin-1中的ld
ld-a -----> 第一次調正後的ld
bin-2 -----> 第二遍編譯的binutils
ld-2 -----> bin-2中的ld
ld-b -----> 第二次調正後的ld
bin-3 -----> 第三遍編譯生成的binutils
ld-3 -----> bin-3中的ld
gcc-0, gcc-1, gcc-2, gcc-3分別表示host system中的gcc, 和Toolchain中的兩遍gcc和最後LFS系統的gcc.
好多年前,安裝過早期的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 --> /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 -----> host system的binutils
ld-0 -----> host system 的ld
bin-1 -----> 第一遍編譯出的binutils
ld-1 -----> bin-1中的ld
ld-a -----> 第一次調正後的ld
bin-2 -----> 第二遍編譯的binutils
ld-2 -----> bin-2中的ld
ld-b -----> 第二次調正後的ld
bin-3 -----> 第三遍編譯生成的binutils
ld-3 -----> 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- grub安裝心得(轉)
- 在lfs上安裝tcpdumpTCP
- lfs上安裝net-tools
- 紅旗安裝攻略--RedFlag4.0安裝心得(轉)
- ubuntu20.04 安裝 Git LFSUbuntuGit
- 在lfs上繼續安裝openssh
- Solaris 9.0 x86 安裝心得(轉)
- 安裝Linux的五種方法和心得(轉)Linux
- RedHat Enterprise AS4 硬碟安裝心得(轉)Redhat硬碟
- 【git】Ubuntu作業系統上安裝Git LFSGitUbuntu作業系統
- 轉:LogMiner安裝和使用的一些心得
- 用VMWARE 3.0安裝LINUX 的一點心得(轉)Linux
- 版本控制常見問題列表——版本控制心得(三) (轉)
- xp2600 Corp Edition安裝心得與交流(轉)
- Jive安裝的一點心得
- vc++.net 的安裝心得C++
- 沒有使用版本控制的黑暗時代——版本控制心得(一) (轉)
- 關於laravel5.1安裝心得Laravel
- Linux 安裝 mysql 5.5.8(cmake原始碼安裝mysql5.5以上版本)[轉]LinuxMySql原始碼
- lfs(systemv版本)學習筆記-第1頁筆記
- 安裝mysql(版本:8.0.28)MySql
- 安裝centOS版本oracleCentOSOracle
- 在所有linux版本安裝oracle9i(轉)LinuxOracle
- OFBIZ2.0精簡版本安裝手冊 (轉)
- Mysql--所有版本安裝以及完全解除安裝MySql
- Postgresql Linux版本安裝——RPM包安裝SQLLinux
- Nginx安裝(詳細版本)Nginx
- git Windows版本安裝教程GitWindows
- 安裝其他版本的 LaravelLaravel
- Laravel 6.0 lts版本安裝Laravel
- Ubuntu安裝golang多版本UbuntuGolang
- gitbook mac 版本的安裝GitMac
- Linux版本MongoDB安裝LinuxMongoDB
- Torch GPU版本的安裝GPU
- ubuntu 安裝指定版本dockerUbuntuDocker
- 使用免安裝版本在windows上手動安裝PostgreSQLWindowsSQL
- MySQL基於紅旗Linux安裝的心得MySqlLinux
- HP-UX下確定已安裝C++的版本(轉)UXC++